nkf UTF-8に中国語の文字がありますか?

nkf UTF-8に中国語の文字がありますか?

だから漢字を含むtmp.ahkファイルがあります。

$ cat tmp.ahk
sendText("结婚吧")

ファイルをUTF-8(BOMを含む)ファイルに変換したいです。 (BOMは、Autohotkeyが後続のステップでファイルに対してBOM処理を実行する必要があるためです)

$ file tmp.ahk 
tmp.ahk: UTF-8 Unicode text

そこで、nkfコマンドを使用してファイルをBOMを含むUTF-8ファイルに変換し、次のようにしました。

$ bash -c "nkf --overwrite --oc=UTF-8-BOM ./tmp.ahk"

$ file tmp.ahk
tmp.ahk: UTF-8 Unicode (with BOM) text

ところでファイルの内容を調べてみると(漢文部分が壊れて修正されましたね)

$ cat tmp.ahk
sendText("扈灘ゥ壼制")

この問題の原因は何ですか?中国語のテキストを含むファイルを間違った文字なしでUTF8-BOMに変換するには?ありがとうございます。

答え1

UTF-8ではバイトオーダーは重要ではないので、BOMはあまり意味がありません。

AutohotkeyはMicrosoft Windowsアプリケーションであるようで、これが必要な理由を説明できます。

これにより、次のことができます。

unix2dos --add-bom your-file

また、行区切り文字を Unix スタイル (LF) から Microsoft スタイル (CRLF) に変換します。

答え2

~からタレジンGNUの実装に関するコメントsed

sed -i .bak '1s/^/\xef\xbb\xbf/' tmp.ahk

最初の行の先頭にBOM(U + FEFF)文字のUTF-8エンコーディングを追加します。

関連情報