アカウント名:
パスワード:
次はデフォルトの文字コードに手を付けてくれたまへ
Windowsの文字コードって複数あるの?
メモ帳のだぞデフォルトだとANSIになってる他にUnicode、Unicode big endian、UTF-8が使える
最近はHTMLやソースコード関連がUTF-8推奨なのでデフォルトをUTF-8に変えても良さそう
BOMは文字エンコーディングやエンディアンを確実に判別できるという重要な役割を果たしているわけなんだけどそれが無かったら判別のためにテキスト全文を読んで、どの文字コードだと解釈すれば矛盾が無いかを評価しなくてはならず非常に負荷が高いその上、本文が短い場合には複数の文字コードで矛盾が生じないケースもあって、自動判別が不可能な場合まである
複数のファイルを結合して問題が生じる?いや、BOMはファイルの先頭以外では無視しなければならない(幅0の空白文字)仕様なんだから不具合が生じる方がおかしい
そして、BOMのせいで動作しないアプリケーションはUnico
後方互換性を壊すような規格の方がタコですね。そして BOM の解釈は文字コードより上位の規格により規定される事がある。
例えば JSON は BOM の付与を禁止しました。XMLでは文字コードの判断にはXML宣言より優先してBOMの情報を使うように規定されています。「シェルがファイルをテキストとして解釈出来ること」「シェルがファイルをシェルスクリプトとして処理できる事」は両立しなくても構わないのです。
そして、シェルスクリプトが動かないのはシェルのせいではありません。
コメント付ける場所間違えていませんか?他の枝を見て誤解したのだと思いますが(#3407179) のどこにもBOM付きのシェルスクリプトの話なんて書いてありませんよ。
文字コードより上位の規格があればそれに従うのは当然ですね。タコと呼ぶにふさわしいアプリにはそういう規格があるのですか?
後方互換性を壊すという意味も分かりません。BOM付きUTF-8は「ASCIIとして扱ってはダメ」という意思表示です。JSONがBOMを禁止したのはUTF-8の使用とセットでもはやASCII関係ないですよね?
テキストを食わせる側と読む側の立場の違いを考えてください。BOMを除くかどうかは食わせる側が責任を持って判断するべきです。テキストエディタが自動で判断できるものではありません。(なのでメモ帳がBOMなしUTF-8出力に対応してほしいというのは正当な要求でしょう)一方でそう言った面倒を食わせる側に押し付けている読む側アプリはタコかどうかともかく親切ではありませんね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
いいぞ (スコア: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: (スコア:0)
後方互換性を壊すような規格の方がタコですね。
そして BOM の解釈は文字コードより上位の規格により規定される事がある。
例えば JSON は BOM の付与を禁止しました。XMLでは文字コードの判断にはXML宣言より優先してBOMの情報を使うように規定されています。
「シェルがファイルをテキストとして解釈出来ること」
「シェルがファイルをシェルスクリプトとして処理できる事」
は両立しなくても構わないのです。
そして、シェルスクリプトが動かないのはシェルのせいではありません。
Re:BOM は重要 (スコア:0)
コメント付ける場所間違えていませんか?
他の枝を見て誤解したのだと思いますが
(#3407179) のどこにもBOM付きのシェルスクリプトの話なんて書いてありませんよ。
文字コードより上位の規格があればそれに従うのは当然ですね。
タコと呼ぶにふさわしいアプリにはそういう規格があるのですか?
後方互換性を壊すという意味も分かりません。
BOM付きUTF-8は「ASCIIとして扱ってはダメ」という意思表示です。
JSONがBOMを禁止したのはUTF-8の使用とセットで
もはやASCII関係ないですよね?
テキストを食わせる側と読む側の立場の違いを考えてください。
BOMを除くかどうかは食わせる側が責任を持って判断するべきです。
テキストエディタが自動で判断できるものではありません。
(なのでメモ帳がBOMなしUTF-8出力に対応してほしいというのは正当な要求でしょう)
一方でそう言った面倒を食わせる側に押し付けている読む側アプリは
タコかどうかともかく親切ではありませんね。