UTF-8およびBOM
提供:MoodleDocs
- データベース活動
データベース活動 では、BOM (http://en.wikipedia.org/wiki/Byte-order_mark) を含む UTF-8 ファイルのインポートにまだ問題があるようです。
--Frank Ralf 10:36, 13 July 2009 (UTC)
BOMとは何ですか?
- BOM は "Byte Order Mark" の略です。
- Unicodeコンソーシアムによる Byte Order Mark (BOM) FAQ 。
- "ソフトウェア開発者が絶対に知っておくべきUnicodeとキャラクターセットの基礎知識(言い訳なし!)" Joel on Software (2003) より。
何のために使うのか?
マルチバイト文字の場合、バイトの出現順序を示すために使用されます。
BOMの何が問題なのか?
- UTF-8 BOM に起因する表示上の問題を参照してください。
- Windowsのメモ帳など、一部のテキストエディタはデフォルトでBOMを追加します。
- OpenOffice Calcからエクスポートすると、最初のデリミタの後にもBOMが入り込んでしまいます。
BOMはどのように検出するのですか?
Unicodeの特殊文字を表示できるテキストエディタが必要です。Windows用の優れたUnicodeテキストエディタとしては、SC UniPadがあります。
この図は、OpenOffice CalcからエクスポートしたCSVファイルで、最初のデリミタの後にも BOM (#FEFF) が入り込んでいます。
BOMファイルのためにMoodleフォルダをスキャンする
MoodleがLinuxサーバにインストールされている場合、以下のコマンドラインのいずれかを試してみてください:
find . -type f -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}' fgrep -rl `echo -ne '\xef\xbb\xbf'`
検索 & 削除!
find . -type f -exec sed 's/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;
どのようにすればBOMを削除できますか?
上記のユニコード対応のテキストエディタであれば、BOMを削除することができ、中にはファイルを開いたり保存したりする際に自動的にBOMを削除するものもあります。
また、Notepad++のように、BOMなしでファイルを保存できるテキストエディタもあります。