UTF-8とBOM

データベース活動

データベース活動では、依然としてBOMでのUTF-8ファイルのインポートに問題があるようです( https://en.wikipedia.org/wiki/Byte-order_mark )。

- フランクラルフ 2009年7月13日10時36分(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サーバにインストールされている場合は、以下のコマンドラインのいずれかを試すことができます。

見つけます。 -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 ++)

関連情報