ITblog

ファイルをUTF8-Nで保存できない現象について

2010年08月16日

プログラミングなどをしていて、ファイルを保存するときに文字コードを指定する場面があると思いますが、UTF-8では、「UTF-8」と、「UTF-8N」の2種類がありますよね。

どう違うかが今ひとつ分からないという方も多いと思うのですが、違いはUTF-8ではBOM(Byte Order Mark)と呼ばれる、エンディアンを判定するためのデータが先頭3バイトに書き込まれ、UTF-8Nでは書き込まれないというもの。
…ということらしいです。

さらに厳密にいうと、UTF-8と一言でいっても、BoMが付与される場合とそうでない場合があるらしく、UTF-8Nではないからといって、必ずしもBoMが付与されているわけではないらしいです。(なんともややこしい…)

具体的にこれによって大きな違いはないと思うのですが、サイトやシステム上統一しておかないと、文字化けが起こったりすることがあるので、使い分けは必要みたいです。

それで、話は少しずれるのですが、とあるとき、作成したプログラムを保存するとき、「UTF-8N」で保存できない(保存しても何故か閉じて再び開くとSJISに戻っている)ということがあって困ったのですが、原因は、「ファイルの中に日本語が1つもなかった」ということが原因みたいです。

試しに日本語をファイルに追記してみると、UTF-8Nで保存できました。こんなこともあるんだなーということで、メモ程度に書き残しておきます…。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です