ファイル名がUTF16で記載される環境で、ファイル名をUTF8に変換したいと考えています。
対象環境ではiconvが使用可能ですので、
iconv -f UTF-16 -t UTF-8 target.txt -o target.utf8
とすることで本来は変換が可能ですが、今回は対象はファイルではなくlsコマンドなどで得られるファイル名が対象になります。
実際には検証という名のファイルは「\u691c\u8a3c」となるはずですが、\はファイルで指定出来ないため#に置換されたファイル名に指定されています。
その為、実際のファイル名は
#691c#8a3c
と\uが#に置換されて表示されています。
#を\uに置換してテキストに落としてみるということもしたのですがうまくいきませんでした。
1.viコマンドでinput.txtに下記を書き込む
\u691c\u8a3c
2.コマンドで以下を実行
iconv -f utf16 -t utf8 input.txt -o output.txt
上記ではうまくいきませんでした。
output.txtの中身は「畜??畜???」といった内容になりました。
上記のファイルをviで作成したため内容がUTF8だからかも?と考えましたが分かりませんでした。
やり方に問題があるのだと思いますがどの部分で躓いているのかが不明です。
\u691c\u8a3c というUTF16の文字列をiconvでUTF8にする際のアドバイスをいただけないでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/28 14:56
2018/05/29 00:40
2018/05/31 08:28