- ベストアンサー
Linux nkfコマンド使用方法
最近、nkfコマンドを知りました。 nkf -w8 --overwrite test.php nkf -g test.php >>UTF-8 上記は、意図したとおりに変換されますが、 -jesなどの他の文字コード変換ができません。 なぜでしょうか。 バージョン2.1.2 ご回答をよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> -jesなどの他の文字コード変換ができません。 > なぜでしょうか。 理由はわからないけど、試しに $ nkf -g test.php # 結果1 $ nkf -j test.php > test.php.j $ nkf -g test.php.j # 結果2 を実行して、結果1 と 結果2 がどうなったか補足してみたらどうかな。-e, -s も同様に。
その他の回答 (2)
#2 です。補足をもらう前だけど勘で追加投稿。 $ nkf -g test.php # 結果1 $ nkf -j test.php > test.php.j $ nkf -g test.php.j # 結果2 とやった場合、結果1は ASCII になるんじゃないかな。だとすると日本語が含まれてないので nkf -j(e,s) を実行した後(結果2)もやはり ASCII になる。 では、なぜ -w8 のときに結果2 が UTF-8 になるかというと、元の内容に BOM が付加されてるから。元の内容に日本語が含まれてなくても、BOM があるので UTF-8 と判定されてるってことですね。 ちなみに -w80 だと BOM が付かないので、結果2 はやはり ASCII になりますね。 $ cat aaa abcde $ nkf -g aaa ASCII $ nkf -w8 aaa > aaa.w8 $ nkf -g aaa.w8 UTF-8 $ nkf -w80 aaa > aaa.w80 $ nkf -g aaa.w80 ASCII (ここまで書いて質問を確認したら補足きてました。が、そのまま送ります)
お礼
ご回答ありがとうございました!
- localica
- ベストアンサー率52% (202/385)
jesって何ですか? >なぜでしょうか。 マニュアルを確認されましたか? jisに変換したいならオプションは「j」、sjisに変換したいなら「s」です。 変換出来ない文字コードも存在します。 http://sourceforge.jp/projects/nkf/howto/usage
お礼
初歩的な間違いでした。 ありがとうございました。
補足
回答ありがとうございます 分かりづらくて申し訳ありません オプションのことでした。 -j -e -s utf-8には変換できるのですが、それ以外の変換が行えません。
お礼
マルチバイト文字(日本語)を含んでいないファイルをSJIS、EUCに変換しようとしていました。変換できないではなくて、強制的にASCII になっていた模様です。 日本語を含んだ状態で、変換したところうまくいきました。^^;当たり前ですね お二方ともありがとうございました。
補足
回答ありがとうございます。 色々やってみることにします。