アカウント名:
パスワード:
BOMは「ゴミ」であって不要なデータが入ってくるのが無駄だと主張する人がいますが、無駄なのは文字コードの自動判別の方です。
よくある文字コードを自動判定するという動作は、ファイルの内容の一部(1KBとか)、アプリによってはファイルの全部を読んでから文字コードを判定するので非常に負荷が大きいのです。BOMなら3バイト読むだけで済みます。
そして、Unicodeに対応しているアプリであればBOMは文字コード・エンディアンの判別に使えばいいし、そうでないなら無視すればよろしい。
UTF-8のBOMがあるだけで不具合起こすアプリなんていうのは、今時そっちの方がおかしいので修正すれば
BOM入ってるとcatで簡単に結合できないし、パイプでテキスト処理したあとにBOM付け直したりが鬱陶しいじゃん。どう考えてもゴミじゃん。
そりゃあ cat は Unicode 非対応だから。むしろ勝手に BOM 操作したらバイナリが壊れるから cat として使えない。
cat じゃないプログラムで連結するか input 側でBOM対応すればいいだけ。そもそもファイルの途中で ZWNBS 出てくるのはUnicode テキストとしてはエラーじゃないから。いつまでもテキスト連結に cat を使うというのが Unicode 推進側の怠慢である。
catじゃないプログラムって例えば何?たかだかBOMの為にUnixのソフトウェア資産とノウハウを捨てるなんてバカバカしい。専用ソフトウェアで処理する前提なら、プレーンテキストである必要すらない。
知らないよそんなの。そもそも怠慢してるんだから well known なソフトは無いんじゃないの。
Unicode以外だってそれなりに文字コード処理必要なんだからcat だけ怠慢してるのが悪い。
結局対応ソフトが無いのでは使い物にならない。
別にcatに限った話じゃない。リダイレクトやパイプで繋いだときに上流のコマンドがUTF-8か否かを識別して、出力の時にBOM付けるようにしないといけない。ファイルを最初に読むプログラムだけなら話は簡単だが、findstrやgrepみたいな加工するコマンドのアウトプットのこと考えると。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
BOM有りに統一すべきだった (スコア:0)
BOMは「ゴミ」であって不要なデータが入ってくるのが無駄だと主張する人がいますが、無駄なのは文字コードの自動判別の方です。
よくある文字コードを自動判定するという動作は、ファイルの内容の一部(1KBとか)、アプリによってはファイルの全部を読んでから文字コードを判定するので非常に負荷が大きいのです。
BOMなら3バイト読むだけで済みます。
そして、Unicodeに対応しているアプリであればBOMは文字コード・エンディアンの判別に使えばいいし、そうでないなら無視すればよろしい。
UTF-8のBOMがあるだけで不具合起こすアプリなんていうのは、今時そっちの方がおかしいので修正すれば
Re: (スコア:0)
BOM入ってるとcatで簡単に結合できないし、パイプでテキスト処理したあとにBOM付け直したりが鬱陶しいじゃん。
どう考えてもゴミじゃん。
Re:BOM有りに統一すべきだった (スコア:1)
そりゃあ cat は Unicode 非対応だから。
むしろ勝手に BOM 操作したらバイナリが壊れるから cat として使えない。
cat じゃないプログラムで連結するか input 側でBOM対応すればいいだけ。
そもそもファイルの途中で ZWNBS 出てくるのはUnicode テキストとしてはエラーじゃないから。
いつまでもテキスト連結に cat を使うというのが Unicode 推進側の怠慢である。
[Q][W][E][R][T][Y]
Re: (スコア:0)
catじゃないプログラムって例えば何?
たかだかBOMの為にUnixのソフトウェア資産とノウハウを捨てるなんてバカバカしい。
専用ソフトウェアで処理する前提なら、プレーンテキストである必要すらない。
Re:BOM有りに統一すべきだった (スコア:1)
知らないよそんなの。
そもそも怠慢してるんだから well known なソフトは無いんじゃないの。
Unicode以外だってそれなりに文字コード処理必要なんだから
cat だけ怠慢してるのが悪い。
[Q][W][E][R][T][Y]
Re: (スコア:0)
結局対応ソフトが無いのでは使い物にならない。
Re: (スコア:0)
別にcatに限った話じゃない。
リダイレクトやパイプで繋いだときに上流のコマンドがUTF-8か否かを識別して、出力の時にBOM付けるようにしないといけない。
ファイルを最初に読むプログラムだけなら話は簡単だが、findstrやgrepみたいな加工するコマンドのアウトプットのこと考えると。