MS932~UTF-8.binというバイナリファイルにしたがって、sjisutf8コマンドは、シフトJISのテキストファイルをUTF-8のテキストファイルに変換します。
Windowsのコマンドプロンプトは、シフトJISが多用されます。MS932は、いわゆるシフトJISですが、規格外です。たとえば、丸付きの数字(①②③⑩⑳)、ローマ数字(ⅠⅡⅢⅣⅩ)がMS932に含まれています。sjisutf8コマンドのパラメータとして、シフトJISのファイルを指定してください。sjisutf8コマンドは、シフトJISのファイルを読み込んで、sjisutf8.txtというUTF-8のファイルを書き出します。
パラメータ | ほぼ同等な入力 | ファイル | 説明 |
---|---|---|---|
-b | UTF-8のテキスト | 一時ファイルとして、binary.tmpを作成する。 | |
-L | -LF | UTF-8のテキスト | 0Ahのみで改行する。 |
-L- | -CRLF | UTF-8のテキスト | 0Dhおよび0Ahで改行する。 |
-t | テキストファイル | シフトJISのテキストもUTF-8のテキストも同じ日時を有する。 |
シフトJISのファイル、UTF-8のファイルがこの順に指定された場合、sjisutf8コマンドは、シフトJISのファイルから行を読み込んで、UTF-8のファイルに行を書き出します。シフトJISのファイルがUTF-8のファイルで上書きされるように命令するには、sjisutf8コマンドのパラメータとして、-bを付加してください。一時ファイルとして、binary.tmpが作成されます。さらに、2個目のファイル名を1個目のファイル名と同じにしてください。binary.tmpが改名されます。図24を参照してください。
sjisutf8 -b name name
テキストファイルに関して、Windowsでは、0Dhおよび0Ahで改行しますが、UNIXでは、0Ahのみで改行します。sjisutf8コマンドは、各行から0Dhを削除します。変換表の名前は、MS932~UTF-8.binです。sjisutf8コマンドの特徴として、実行ファイル(Sjisutf8.exe)の外部から変換表を読み込むことができます。実行ファイルは、自分がインストールされたディレクトリに存在している変換表を読み込みます。
UTF-8のファイルと、シフトJISのファイルが同じ更新日時(修正時刻)を有するように命令するには、sjisutf8コマンドのパラメータとして、-tを付加してください。図25を参照してください。
sjisutf8 -t readme.txt readme_utf-8.txt
ファイル名が指定されていない場合、sjisutf8コマンドは、標準入力から読み込もうとします。このモードでは、0Dhおよび0Ahで改行して、標準出力に書き出します。このモードから脱出するには、Ctrlを押しながらZを押してください。^Zが表示されます。さらに、Enterを押してください。sjisutf8コマンドで半角カタカナが3バイトになった例を図26に示します。ECHOおよびsjisutf8のパイプを構成して、katakana_utf-8.txtにリダイレクトしました。
obotコマンドは、ファイルの開始部分を2桁の十六進数で表現します。
十六進数でファイルを表示する有名なコマンドとしては、od, TDUMPがあります。デバッガ、バイナリエディタは、バイナリファイルの閲覧および編集が可能です。MIFESは、テキストエディタですが、バイナリ表示が可能です。
ファイルを読み込むバッファーのサイズを設定するには、obotコマンドのパラメータとして、-bバイト数を付加してください。テキストファイルもバイナリファイルとして処理されます。テキストファイルから読み込む行数を設定するには、obotコマンドのパラメータとして、-m行数を付加してください。何も指定されていない場合、-b640 -m3が指定されたとみなします。図26を参照してください。
obotコマンドがCSVを書き出すように命令するには、-s,(マイナスエスコンマ)を付加してください。書き出す表の欄数(表の列数)を設定するには、obotコマンドのパラメータとして、-c欄数を付加してください。表の行数を制限するには、obotコマンドのパラメータとして、-r行数を付加してください。何も指定されていない場合、obotコマンドは、区切り文字として空白を使用しますし、-c20 -r2147483647が指定されたとみなします。
パラメータ | ほぼ同等な入力 | 説明 |
---|---|---|
-b2048 | 2048バイトを読み込む。 | |
-c10 | 表の各行には、10欄ある。10列の表になる。 | |
-m5 | テキストファイルから5行を読み込む。 | |
-r20 | 表の行数は、20行を超えない。 | |
-s, | -s¥x2C | 区切り文字として、コンマを使用する。 |
odコマンドは、ファイルの内容を十六進数で表現できます。
odコマンドを実行するには、UNIXのodが含まれるソフトウェアが必要です。MinGWかCygwinかGNU Win32のいずれかをWindowsパソコンにインストールしてください。cat, head, odは、GNUのコアなユーティリティに含まれています。Windowsで利用するために、Coreutils Win32をインターネットで検索してダウンロードできます。インストーラーの例としては、coreutils-5.3.0.exeがあります。
パラメータとして何も指定されていない場合、odコマンドは、-oが指定されたとみなして、2バイトごとに八進数を表示します。od -tx1で十六進数を表示した例を図27に示します。64ビット版Windows 10のパソコンにMinGWをインストールしたら、32ビット版のbashがインストールされました。Windowsのコマンドプロンプトではなく、MinGWのbashからodコマンドを実行しました。
パラメータ | ほぼ同等な入力 | 説明 |
---|---|---|
-t o2 | -o | 2バイトごとに八進数を表示する。 |
-t x1 | -tx1 | 1バイトごとに十六進数を表示する。 |
-t x2 | -x | 2バイトごとに十六進数を表示する。 |
iconvコマンドは、ファイルの文字コードを変更します。
GNU Win32としてiconvコマンドをダウンロードしてインストールすることができます。たとえば、libiconvを検索してください。libは、ライブラリを意味します。WindowsパソコンにMinGWをインストールしたら、iconvコマンドもインストールされる場合があります。
コマンドプロンプトの文字コードがシフトJISに設定されていることを確認するには、パラメータを付加しないで、コマンドプロンプトにCHCPを入力して、Enterを押してください。932が表示されます。MS932が使用されることがわかります。どのWindowsも最初からCHCPコマンドを用意しています。MS932は、CP932とも言います。iconvコマンドのパラメータとして、Shift_JISではなくCP932を付加した例を図28に示します。
iconv -f CP932 -t UTF-8 marunana.txt > marunana_utf-8.txt
rufeolコマンドは、テキストファイルの各行の末尾から不要な文字を除去します。
rufeolコマンドのパラメータが-u1であるならば、0Ahに先行する1バイトを無視します。Windowsのテキストは、0Dhおよび0Ahで改行します。0Dhも数えてください。-u1が指定された場合、rufeolコマンドは、Windowsのテキストから0Dhのみ削除します。図29を参照してください。
パラメータ | ファイル | 説明 |
---|---|---|
-u1 | Windowsのテキスト | 0Dhを削除する。 |
-u2 | テキストファイル | 0Ahより先行する2バイトを削除する。 |