Use of a BOM is neither required nor recommended for UTF-8, but may be encountered in contexts where UTF-8 data is converted from other encoding forms that use a BOM or where the BOM is used as a UTF-8 signature. See the “Byte Order Mark” subsection in Section 23.8, Specials, for more information.
いいぞ (スコア:0)
次はデフォルトの文字コードに手を付けてくれたまへ
Re: (スコア:0)
Windowsの文字コードって複数あるの?
Re: (スコア:0)
メモ帳のだぞ
デフォルトだとANSIになってる
他にUnicode、Unicode big endian、UTF-8が使える
最近はHTMLやソースコード関連がUTF-8推奨なので
デフォルトをUTF-8に変えても良さそう
Re: (スコア:5, すばらしい洞察)
BOM は重要 (スコア:1)
BOMは文字エンコーディングやエンディアンを確実に判別できるという重要な役割を果たしているわけなんだけど
それが無かったら判別のためにテキスト全文を読んで、どの文字コードだと解釈すれば矛盾が無いかを評価しなくてはならず
非常に負荷が高い
その上、本文が短い場合には複数の文字コードで矛盾が生じないケースもあって、自動判別が不可能な場合まである
複数のファイルを結合して問題が生じる?
いや、BOMはファイルの先頭以外では無視しなければならない(幅0の空白文字)仕様なんだから不具合が生じる方がおかしい
そして、BOMのせいで動作しないアプリケーションはUnico
Re: (スコア:1)
何言ってんの、BOM 付き UTF-8 は、UTF-8 の最大の利点である、
ASCIIの範囲の文字しか使っていない場合は、従来のプレーンテキストと一切変わらず、古いプログラムでもそのまま処理できる
を投げ捨てているわけで、正直考えた奴は莫迦の極みでしかないエンコーディングなんだが
# windows 以外ではまず使われることがない、よくある「標準規格からちょっとズレたMS独自仕様」の名残だと思ってる
Re: (スコア:0)
あくまでもテキストエディタで UTF-8 を扱う話ですよね
ASCII 以外で不具合を起こすプログラムで扱うデータを編集するなら、
文字コードとして ASCII が指定されている設定のテキストエディタを使うべきでしょう
BOM が含まれるだけで不具合を起こすプログラムならば、
どっかからコピペしたデータに不可視の UTF-8 制御コードが含まれていたりとか、
入力ミスでうっかり ASCII外の文字がどっかに混入してしまったりというヒューマンエラーで不具合が起こりかねません
ようするに、
「テキストエディタで UTF-8 としてデータを編集するけど
万が一 Unicode の制御コードや A
Re: (スコア:0)
あなたは、テキストを入力した環境と、テキストを使用する環境が異なる状況があることを判っていないようですね。
# いっちゃ悪いが、入出力の環境を指定できるのならば、UTF-8 w/ BOM だろうと、 mule-internal だろうと、オレオレエンコーディングだろうと、好きなエンコーディングを使えば良いんです。
入出力を揃えられない可能性があるときに、共通規格としてテキストの交換用符号があるわけで..
元の UTF-8 ができるだけ従来のプログラムでもそのまま使える様に配慮しているのに、BOMがそれをぶち壊しにするわけです。
規格に入っているけど、歓迎されていない感じしませんか? Unicode 10.0規格(sec 2.6)には
Use of a BOM is neither required nor recommended for UTF-8, but may be encountered in contexts where UTF-8 data is converted from other encoding forms that use a BOM or where the BOM is used as a UTF-8 signature. See the “Byte Order Mark” subsection in Section 23.8, Specials, for more information.
とありますし、W3C も、 HTMLにおけるBOMの扱い [w3.org]
メリット>デメリット (スコア:1)
BOM有りのメリット:
文字コードやエンディアンの誤認識を防げる
BOM無しのメリット:
ASCIIしか扱えないプログラムとの互換性を保てる
ただし、ASCII文字以外を含めない場合に限る
BOM無しのメリットが弱すぎると思うのですが
BOM有りのBOMを消すのは簡単だけど、BOM無しUFT-8で文字コード誤認識を完全に防ぐのは技術的に不可能ですからね
色々な環境で扱う可能性を考慮するなら、BOMが無いせいで文字コードが誤認識される場合も考慮すべきでは
Re:メリット>デメリット (スコア:0)
BOMなしUTF-8のファイルにEUCのファイルをくっつけて判別不可能なゴミにするのだ
これを防ぐには入力すべてがUTF-8だということを設計者が保証しなければならないが、素直にBOMなしをはじく方が楽かつ確実ですね