回答:
iconv
ファイルのエンコーディングの変換に使用できます:
iconv -f ascii -t utf16 file2.txt > another.txt
another.txt
目的のエンコードが必要です。
これを試すこともできます:
echo $var | iconv -f ascii -t utf16 > "file2.txt"
ファイルを変換するときは、バイト順マークが含まれていることを確認する必要があります。にもかかわらず、標準のバイトオーダーマークがUTF-8には推奨されていないと言い、バイト順マークなしUTF-8とASCIIの間で合法的な混乱が存在することができます。
さらに、バイト順マークを指定するUTF-16BE
か先頭に追加UTF-16LE
しないので、まずUTF-16
プラットフォームに依存するエンディアンを使用するに変換します。次に、file
実際のエンディアンを決定し、それからに変換しUTF-16LE
ます。
最後に、を使用してファイルを作成するbash
と、ファイルはbash
のlocale charmap
エンコーディングを受け取るため、マッピングする必要があります。
(iconv
サポートされiconv -l
ているすべてのエンコーディングをリストすると、すべてが大文字になるため、すべてのエンコーディングを大文字にします。)
BASH_ENCODING="$( locale charmap | tr [:lower:] [:upper:] )"
echo $var | iconv -f "$BASH_ENCODING" -t UTF-16 > UTF-16-UNKNOWN-ENDIANNESS-FILE
FILE_ENCODING="$( file --brief --mime-encoding UTF-16-UNKNOWN-ENDIANNESS-FILE )"
iconv -f "$FILE_ENCODING" -t UTF-16LE UTF-16-UNKNOWN-ENDIANNESS-FILE > file2.txt