改行コードの変換と上書きモードについて。あるいは iconv と nkf に見る思想の違い – 玉虫色に染まれ!
iconv と g_convert については以前書いたけど
そういえば改行コードを考えていなかった。
g_convert | PaePoi
SHIFT-JIS じゃなく CP932…
は置いておいて、コードでヤルなら自力しか無さそうだ。
しかし dos2unix なんて便利なコマンドがあったのね。
よくわかんないので早速 man を見てみる。
どうやら基本的に CRLF を LF に置き換えるコマンドらしい。
特定の文字コードは変換もするっぽいけど CP932 は当然無いな。
–remove-bom が default で有効のようだ。
うっ、コレも考えていなかった。
UTF-8 に BOM を付けるあの Windows の最悪仕様を忘れていた!
BOM を付けると PHP が動かないとか色々あるのよ。
本当に BOM を削除してくれるか試してみよう。
使い方はパイプで渡すと標準出力へ、引数に渡すと上書きみたい。
SeeMe というアプリを C# で作っていた頃のファイルを引っ張り出して。
そう、Visual Studio やメモ帳は勝手に BOM を付けてしまうんです。
特にメモ帳は BOM の有無のみで UTF-8 を見分ける糞っぷり。
見事 CRLF が LF になり BOM が削除された。
上書きなのでワイルドカードでまとめて変換も簡単、これはいい。
つか Windows はいいかげん BOM をヤメろよと。
しかし nkf ってマジで今でもメンテされているんですね。
nkf Network Kanji Filter プロジェクト日本語トップページ – SourceForge.JP