パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

『メモ帳』標準のBOMなしUTF-8に、Windows Searchは対応していない」記事へのコメント

  • BOMは「ゴミ」であって不要なデータが入ってくるのが無駄だと主張する人がいますが、無駄なのは文字コードの自動判別の方です。

    よくある文字コードを自動判定するという動作は、ファイルの内容の一部(1KBとか)、アプリによってはファイルの全部を読んでから文字コードを判定するので非常に負荷が大きいのです。
    BOMなら3バイト読むだけで済みます。

    そして、Unicodeに対応しているアプリであればBOMは文字コード・エンディアンの判別に使えばいいし、そうでないなら無視すればよろしい。

    UTF-8のBOMがあるだけで不具合起こすアプリなんていうのは、今時そっちの方がおかしいので修正すれば

    • by Anonymous Coward on 2021年06月15日 17時46分 (#4051343)

      BOM無しUTF-8の一番の利点は既存のASCIIコードしか想定してないプログラムが修正なしで動く可能性がそこそこ有るという部分なのでBOM付きにしたらUTF-8の意味がない。

      例えば売れた時刻,品名,個数がカンマ区切りで書かれているファイルを処理するプログラムがあるとする。

      ここでファイルがBOM無UTF-8で品名にUTF-8文字が含まれていても、多くの場合プログラムの修正はいらない。でもBOM付だと修正しないと誤動作する。

      親コメント
      • by Anonymous Coward

        そのASCII互換というのはUTF-8を普及させる段階では最大のメリットと言えたでしょう。

        しかしUTF-8が一般化した現時点においては、BOMによってUTF-8であると判定できるメリットが、UTF-8非互換のプログラムを誤動作させるデメリットを上回っていると言えるでしょう。

        • by Anonymous Coward

          3バイトも使うなら、タグでいいんじゃないかって気になるからな。

        • by Anonymous Coward

          なんだかなー
          プログラマー(not プログラム)の都合でASCIIテキストのリソースを全否定して冒頭にBOMを付けさせるのか

        • by Anonymous Coward

          UTF-8が一般化した前提なら、そもそも判定する必要性自体がレアケースになっちゃいませんかね。

      • by Anonymous Coward

        CSVを使っているということはお手軽に書いたバッチファイルや簡易的なスクリプトだと思いますが、BOMを無視or削除するなんてコード、原始的なWindowsバッチファイルやシェルスクリプトでも数分あれば書けます。
        古いプログラムなら修正すればいいですし、今時他のユーザ(社内の他の従業員を含む)がBOM付きファイルを処理することすら想定できていないならプログラマーとしての資質に問題があるでしょう。

        • by Anonymous Coward

          ゴチャゴチャとご高説を垂れてるけど、コストが掛かる(コード作成、テスト、デプロイ)ことに触れていない時点で、言葉に反して君が3流である証明になってるよw

          • by Anonymous Coward

            運任せ文字コード判定に委ねるのを良しとする3流未満に言われてもねw

            • by Anonymous Coward

              文字コード解析による判定は実装者の責任だが
              BOMによる判定ならコンテンツのせいにして逃げられるからな。
              他人に判断を委ねたい・自分は責任をとりたくない勢が
              相手を3流未満呼ばわりとかちゃんちゃらおかしい。
              ここ笑うところだったの?

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

処理中...