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の何が問題なのか?

  • UTF-8 BOM に起因する表示上の問題を参照してください。
  • Windowsのメモ帳など、一部のテキストエディタはデフォルトでBOMを追加します。
  • OpenOffice Calcからエクスポートすると、最初のデリミタの後にもBOMが入り込んでしまいます。

BOMはどのように検出するのですか?

Unicodeの特殊文字を表示できるテキストエディタが必要です。Windows用の優れたUnicodeテキストエディタとしては、SC UniPadがあります。

Calc-export BOM.png

この図は、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なしでファイルを保存できるテキストエディタもあります。

関連項目