標準入力(STDIN)からファイルやストリームを読み込んで、文字コード変換して標準出力(STDOUT)に出力するプログラム。
nkf コマンドは同様の機能があり、もっと高機能ですが、nkf コマンドを入れるまでもない時や入れることができない時に使えます。
もちろん CLI版のphpがインストールされていることが前提ですが。
なお、Cygwin を含め、Windows上では動作しません。
コマンド | 説明 |
---|---|
e2u | EUC-JP から UTF-8 へ変換 |
e2s | EUC-JP から SJIS へ変換 |
e2j | EUC-JP から JIS へ変換 |
s2u | SJIS から UTF-8 へ変換 |
s2j | SJIS から JIS へ変換 |
s2e | SJIS から EUC-JP へ変換 |
j2u | JIS から UTF-8 へ変換 |
j2s | JIS から SJIS へ変換 |
j2e | JIS から EUC-JP へ変換 |
u2s | UTF-8 から SJIS へ変換 |
u2j | UTF-8 から JIS へ変換 |
u2e | UTF-8 から EUC-JP へ変換 |
パイプで渡す
% less hoge.txt | e2u
パイプで渡してソートする
% less hoge.txt | e2u | sort
ファイルを与える
% e2u < input.txt
ファイルを与えて、変換後のファイルを作成する
% e2u < input.txt > output.txt
#!/usr/local/bin/php # # - Description - # convert encoding to {euc-jp, sjis, jis, utf-8} from {euc-jp, sjis, jis, utf-8} # # - Setting - # 1. put this script file in /$HOME/bin # 2. chmod 755 mbConvertEncoding.php # 3. ln -s mbConvertEncoding.php e2u # ln -s mbConvertEncoding.php e2s # ln -s mbConvertEncoding.php e2j # : # s2u s2j s2e j2u j2s j2e u2s u2e u2j # # - Usage - # some_comannds | e2u # some_comannds | e2u | sort # e2u < input.txt # e2u < input.txt > output.txt # <?php define('EUC', 'EUC-JP'); define('SJIS', 'SJIS'); define('JIS', 'JIS'); define('UTF8', 'UTF-8'); $cmd = substr($argv[0], -3); switch ($cmd) { case 'e2u': convert(EUC, UTF8); break; case 'e2s': convert(EUC, SJIS); break; case 'e2j': convert(EUC, JIS); break; case 's2u': convert(SJIS, UTF8); break; case 's2j': convert(SJIS, JIS); break; case 's2e': convert(SJIS, EUC); break; case 'j2u': convert(JIS, UTF8); break; case 'j2s': convert(JIS, SJIS); break; case 'j2e': convert(JIS, EUC); break; case 'u2s': convert(UTF8, SJIS); break; case 'u2j': convert(UTF8, JIS); break; case 'u2e': convert(UTF8, EUC); break; default: exit("mbConvertEncoding.php: command not found.\n"); } function convert($from, $to) { while($stdin = fgets(STDIN, 4096)) { echo mb_convert_encoding($stdin, $to, $from); } } ?>
#!/bin/sh ln -s ~/bin/mbConvertEncoding.php ~/bin/e2u ln -s ~/bin/mbConvertEncoding.php ~/bin/e2s ln -s ~/bin/mbConvertEncoding.php ~/bin/e2j ln -s ~/bin/mbConvertEncoding.php ~/bin/s2u ln -s ~/bin/mbConvertEncoding.php ~/bin/s2j ln -s ~/bin/mbConvertEncoding.php ~/bin/s2e ln -s ~/bin/mbConvertEncoding.php ~/bin/j2u ln -s ~/bin/mbConvertEncoding.php ~/bin/j2s ln -s ~/bin/mbConvertEncoding.php ~/bin/j2e ln -s ~/bin/mbConvertEncoding.php ~/bin/u2s ln -s ~/bin/mbConvertEncoding.php ~/bin/u2j ln -s ~/bin/mbConvertEncoding.php ~/bin/u2e
※. 改行コードは必ず LF で保存してください