ファイルにUTF-8テキストのBOMがあるかどうかを確認する方法


18

utf-8テキストファイルにコマンドラインからBOMがあるかどうかを確認するにはどうすればよいですか?

fileコマンドは私を示していUTF-8 Unicode textます。

しかし、ファイルにBOMがないことを意味しません。

を使用していUbuntu 12.04ます。


UTF-8にはBOMがないことに注意してください。これはUTF-16の機能です。UTF-8ファイルはU + FEFF文字で始まる場合がありますが、その場合は幅がゼロのスペースです。
ジル 'SO-悪であるのをやめる'

回答:


30

fileBOMがあるかどうかを通知します。次をテストできます。

$ /usr/bin/printf "\ufeff...\n" | file -
/dev/stdin: UTF-8 Unicode (with BOM) text

注:変更fileログによると、この機能は2007年に既に存在していました。したがって、これは現在のどのマシンでも動作するはずです。


1
ご回答ありがとうございます。私のfileバージョンがfile-5.09あり、結果はでした/dev/stdin: ASCII text。バージョンに依存しfileますか?
Ironsand 14

@Tetsu file5.04(Debian squeeze)でテストしましたが、問題ありませんでした。2007年でも、変更ログによると(テストされていません)。しかし、あなたは私の答えで与えたテストを行うことができます。
vinc17 14

language-pack-jaからインストールしたところapt、あなたの例は完璧に動作します。ご協力いただきありがとうございます!
Ironsand 14

4

実行するstat fileNameと、正確な3文字が表示されます。エディターでファイルを開いたとき、何も見えませんでした。そのため、ファイルサイズが3であることに気付いたので、BOMがあることがわかりました。

また、ここでの投稿は私の場合は丁寧でした。

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.