綾小路龍之介の素人思考

[改行コード] 改行コードを正しく取り扱えるかチェックするためのテストファイルを作る

エディタで正しく改行コードを取り扱えるかどうかをチェックしたい場合にテストファイルを作る。そのために nkf を使う。

まずはテスト用の元ファイルを作る。

$ echo "test" > test.txt

その後に元ファイルの改行コードを nkf で変更する。--unix で 0x0a、--mac で 0x0d、--windows で 0x0d0x0a になるはず。それぞれのオプションは各プラットフォームのデフォルト改行コードになっている。

$ nkf --unix test.txt > test.unix.txt
$ nkf --mac test.txt > test.mac.txt
$ nkf --windows test.txt > test.win.txt

正しく改行コードが変更されたかチェックするために od を使う。od はお手軽に使えるバイナリダンパー。-t で出力フォーマットを指定する。x1 の x は 16 進数、1 は入力バイト数。このオプション指定で、1 バイトづつ読み込んで、16 進数で出力するようになる。

$ od -t x1 test.unix.txt
0000000 74 65 73 74 0a
0000005
$ od -t x1 test.mac.txt
0000000 74 65 73 74 0d
0000005
$ od -t x1 test.win.txt
0000000 74 65 73 74 0d 0a
0000006

出力内容を確認すると、ASCII コードで t に相当する 0x74、e: 0x65、s: 0x73、t: 0x74 が 3 つのファイルで出力されていることがわかる。さらに test.unix.txt では 0x0a が、test.mac.txt では 0x0d が、test.win.txt では 0x0d0x0a が出力されている。つまり、各プラットフォームのデフォルト改行コードに変換されている。

できたファイルを改行コードの取り扱いをテストしたいエディタで読み込む。今回のターゲットは notepad と wordpad と notepad++。で、結果は以下。やっぱり notepad は簡易エディタだな。

アプリケーションが改行として認識できるバイト列
0x0a0x0d0x0d0x0a
notepadNGNGOK
wordpadOKOKOK
notepad++OKOKOK

リファレンス

  1. nkf manpage - Google 検索
  2. Ubuntu Manpage: nkf - ネットワーク用漢字コード変換フィルタ v2.0.7
  3. linux バイナリ - Google 検索
  4. バイナリファイルを表示するには
  5. od manpage - Google 検索
  6. Manpage of OD
  7. ASCIIコード表
  8. Notepad++ - Wikipedia
  9. .:: NOTEPAD++ ::.
  10. Notepad++ Portable | PortableApps.com - Portable software for USB drives

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-04-06T01:25:47+09:00
  2. Modified: 2009-04-06T01:25:47+09:00
  3. Generated: 2017-11-17T23:10:22+09:00