UTF-8とBOM
- データベース活動
データベース活動では、依然としてBOMでのUTF-8ファイルのインポートに問題があるようです( https://en.wikipedia.org/wiki/Byte-order_mark )。
- フランクラルフ 2009年7月13日10時36分(UTC)
内容
BOMとはどういう意味ですか?
- BOMは"Byte Order Mark"の略です。
- Unicodeコンソーシアムによるバイトオーダーマーク(BOM)FAQ 。
- Joel on Software(2003年)からの「絶対最小、すべてのソフトウェア開発者は絶対に、確実にUnicodeと文字セットについて知っていなければならない(言い訳はしない!)」
何がいいの?
これは、バイトが現れる順序を示すためにマルチバイト文字に使用されます。
BOMの問題は何ですか?
- UTF-8 BOMに起因する表示上の問題を参照してください。
- Windowsのメモ帳など、一部のテキストエディタではデフォルトでBOMが追加されます。
- OpenOffice Calcからエクスポートすると、最初の区切り文字の後にもBOMが潜入します。
BOMを検出する方法
特殊なUnicode文字を表示できるテキストエディタが必要です。 Windows用の優れたUnicodeテキストエディタはSC UniPadです。
図は、OpenOffice CalcからエクスポートされたCSVファイルを示しています。ここでは、最初の区切り文字の後にもBOM(#FEFF)が入り込んでいます。
BOMファイルをスキャンするMoodleフォルダ
MoodleがLinuxサーバにインストールされている場合は、以下のコマンドラインのいずれかを試すことができます。
見つけます。 -type f -print0 | xargs -0r awk '/ ^ \ xEF \ xBB \ xBF / {印刷ファイル名} {次ファイル}' fgrep -rl `echo -ne '\ xef \ xbb \ xbf'`
見つけて削除
見つけます。 -type f -exec sed / / ^ \ xEF \ xBB \ xBF // '-i.bak {} \; -exec rm {} .bak \;
BOMを削除するにはどうすればいいですか。
上記のUnicode対応のテキストエディタであれば、ファイルを開くときや保存するときに自動的にBOMを削除することもできます。
他のテキストエディタの中には、BOMなしでファイルを保存するものがあります(例: Notepad ++) 。