文字コード総合スレ part13
1 :デフォルトの名無しさん :2020/07/03(金) 20:53:47.08 ID:elbfDzqw.net Windows NTは初代からUnicodeがネイティブの文字コードです。cp932ではありません。 プログラマーなら一度は煩わされたことのある文字コードについてのスレ。 UTF-8、Shift_JIS、JIS、EUC、Unicode、UCS、サロゲートペア、コードポイント、文字コード判定、 合成文字、ソート、TRON、外字コード、その他について語り合いましょう。 各言語での文字列の扱いについての質問もOKです。 基本マッターリ、ささ、茶でもどうぞ。 ■過去スレ 文字コード総合スレ part1 http://pc11.2ch.net/test/read.cgi/tech/1031028205/ 文字コード総合スレ part2 http://pc11.2ch.net/test/read.cgi/tech/1143375639/ 文字コード総合スレ part3 http://pc11.2ch.net/test/read.cgi/tech/1180250376/ 文字コード総合スレ part4 http://pc11.2ch.net/test/read.cgi/tech/1228052369/ (スレ再利用)UnicodeとUTF-8の違いは? http://pc12.2ch.net/test/read.cgi/tech/1177930957/ (隔離スレ)UnicodeとUTF-8の違いは? その2 http://pc12.2ch.net/test/read.cgi/tech/1274937437/ 文字コード総合スレ part5 http://pc12.2ch.net/test/read.cgi/tech/1236529563/ 文字コード総合スレ part6 http://hibari.2ch.net/test/read.cgi/tech/1278923059/ 文字コード総合スレ part7 http://toro.2ch.net/test/read.cgi/tech/1306595564/ 文字コード総合スレ part8 http://peace.2ch.net/test/read.cgi/tech/1354248962/ 文字コード総合スレ part9 http://peace.2ch.net/test/read.cgi/tech/1401301779/ 文字コード総合スレ Part10 http://mevius.2ch.net/test/read.cgi/tech/1444822140/ 文字コード総合スレ Part11 https://mevius.5ch.net/test/read.cgi/tech/1516629503/ 文字コード総合スレ Part12 https://mevius.5ch.net/test/read.cgi/tech/1544931495/
945 :デフォルトの名無しさん :2023/03/01(水) 21:25:20.33 ID:GQlAPTkO.net お互いが自分の意見こそ結論だって言いあってるからね
946 :デフォルトの名無しさん :2023/03/02(木) 00:13:31.42 ID:l6zpHt6k.net 結論はBOM Allowed?: yesとでてるのに それを認めたくないのでしょう
947 :デフォルトの名無しさん :2023/03/02(木) 01:19:24.89 ID:SYo8L+Nt.net もともと BOM をつけろというやつと BOM は不要というやつがいて、規格に BOM は不要で非推奨と書かれていることが判明した。 BOM をつけろと言ってた側が互換性のために BOM を付けても規格準拠というのを理由に土俵際でねばってる。 どうやっても BOM は不要という結論にしかならないのに。
948 :デフォルトの名無しさん :2023/03/02(木) 01:26:38.91 ID:w/H+Tpf4.net つけろ派と不要派じゃなくて つけてもいい派とつけるな派の争いに見えるんだけど
949 :デフォルトの名無しさん :2023/03/02(木) 01:39:10.27 ID:SYo8L+Nt.net >>948 つけろ派は押されてトーンダウンした。 勝手につける分には一人も反対していない。 人に推奨して良いかどうかが今の境界線
950 :デフォルトの名無しさん :2023/03/02(木) 01:48:43.41 ID:s9PRV0S9.net すでに原理主義の突き合わせでしかないだろ
951 :デフォルトの名無しさん :2023/03/02(木) 02:12:10.89 ID:SYo8L+Nt.net >>950 技術的に何が正しいか議論してるのに、話を逸して誤魔化そうとしてるやつがいるだけ。技術的には 「規格では不要、ついでに非推奨。非推奨のものを他人に勧めるな。勝手に使う分には好きにしろ」 で合意が取れるはずなんだが。
952 :デフォルトの名無しさん :2023/03/02(木) 03:43:37.41 ID:l6zpHt6k.net >>947 > 規格に BOM は不要で非推奨と書かれていることが判明した。 ちゃんと基礎知識を身につけろ BOMはバイトオーダーマークの略で、UTF-16などのために作られた仕様 互換性のためじゃねーよ。Unicodeで必要だからBOMが作られたんだろ でUTF-8は1バイト単位の可変長だから、BOMはいらないはずだって主張するやつが出てきた ところがどっこいBOMにははUnicode Signatureの意味があることが判明した (知っている人にとっては常識) そしてUTF-8でBOMは仕様違反だとか禁止とか言ってるやつのトーン下がって 「非推奨だから付けたらだめ」みたいな屁理屈を言い始めたが PDFにBOM Allowed?: yesという文言が見つかって、ゲームオーバーっていうのが これまでの流れだ
953 :デフォルトの名無しさん :2023/03/02(木) 03:44:43.31 ID:l6zpHt6k.net >>951 ちゃんと「規格で許可されている」って書こうね これは事実なんだから それができないから、嘲笑されてる
954 :デフォルトの名無しさん :2023/03/02(木) 04:24:23.36 ID:0lgr0WAt.net お前ら何もわかってないな 各サービスに複雑な文字コード自動判定処理が追加されたことで、 UTF-8/16/32であることをオレオレ自己申告して複雑な文字コード自動判定をスキップするBOMの存在価値はかえって高まったのだ
955 :デフォルトの名無しさん :2023/03/02(木) 09:28:49.86 ID:eRjCsfKd.net >>952 脳内で歪んだか? 過去レス見直しても「規格に禁止と書いてある」と主張してるやつは一人もいないぞ 「規格に不要かつ非推奨って書いてある」と主張してるやつは多数いる
956 :デフォルトの名無しさん :2023/03/02(木) 09:31:59.48 ID:eRjCsfKd.net >>953 だから勝手につける分にはつけていいだろ。 「許可、不要、非推奨」なのは認めるんだな? 復唱してみろ。
957 :デフォルトの名無しさん :2023/03/02(木) 09:35:25.95 ID:l6zpHt6k.net >>955 だからなんで「規格で許可されている」を消すんだよ? 「規格で許可されているが、必須ではなく推奨もしていないと書いてある」だろうが Its usage at the beginning of a UTF-8 data stream is neither required nor recommended by the Unicode Standard, but its presence does not affect conformance to the UTF-8 encoding scheme. UTF-8データストリームの冒頭で使用することは UTF-8データストリームの先頭での使用は、 Unicode Standardでは必須でも推奨でもありませんが、その存在はUTF-8エンコーディングスキームへ の適合性に影響を与えず、UTF-8エンコーディングスキームへの適合性に影響を与えません。 neither required nor recommended → neither 必須 nor 推奨 → 必須ではなく、推奨でもない 不要は unnecessary だ 訳ぐらい間違えんな
958 :デフォルトの名無しさん :2023/03/02(木) 09:36:34.26 ID:l6zpHt6k.net >>956 「許可されている。必須ではない。推奨されていない。」と認めるわけだぞ。 BOM Allowed?: yes neither required nor recommended 書いてあるとおりだ。
959 :デフォルトの名無しさん :2023/03/02(木) 09:51:49.99 ID:rYHGX+R7.net >>946 付けろとは描いてないだろ それがすべてだ
960 :デフォルトの名無しさん :2023/03/02(木) 09:53:53.57 ID:SYo8L+Nt.net >>958 それでいいよ。技術的には不要でも必須でもないでも同じ意味だ。 必須でなくて非推奨なものの他人につけろっていったり、対応を要求したりしなければOK。
961 :デフォルトの名無しさん :2023/03/02(木) 09:54:35.67 ID:rYHGX+R7.net >>948 つけてもいいということはつけなくてもいいということだ 要らないものをつけるためには理由が必要 その理由があまりにもくらだんから全部却下されてるのが今の流れ
962 :デフォルトの名無しさん :2023/03/02(木) 10:17:01.49 ID:l6zpHt6k.net > 要らないものをつけるためには理由が必要 だから何度もUnicode Signatureって 書いてあるって話をしてるんだがな
963 :デフォルトの名無しさん :2023/03/02(木) 10:50:40.57 ID:/D1s32sE.net 文字コードが統一されているシステムなら(意味が無いから)BOMは付けない 他の文字コードも扱うシステムなら(識別子として)BOMを付けるか検討する で良いじゃん
964 :デフォルトの名無しさん :2023/03/02(木) 11:50:12.21 ID:p0hvnhfU.net https://ascii.jp/elem/000/004/058/4058837/2/ https://ths.ashigeki.net/2008/01/utf-8bom.php
965 :963 :2023/03/02(木) 12:05:55.59 ID:/D1s32sE.net 書き忘れた 他の文字コードも扱うシステムでも、文字列以外から文字コードが分かるならそちらを使い、BOMは付けない BOMが欲しくなるのはSJISとUTF-8等が混在するWindowsのファイル ファイルのメタデータとして文字コードが設定出来れば良いのに
966 :デフォルトの名無しさん :2023/03/02(木) 12:53:49.69 ID:dC3Ayx4m.net windowsなら hoge.utf8.txt hoge.sjis.txt で解決 しらんけど
967 :デフォルトの名無しさん :2023/03/02(木) 13:07:13.28 ID:XGv9oiQm.net ファイルの拡張属性にでも,TextEncoding を加えておけば良いんでは?
968 :デフォルトの名無しさん :2023/03/02(木) 13:08:38.21 ID:i0CU6OJ9.net いや、そこまでしてBOMを避ける理由がわからん BOMでなければなんでもいいのかよw
969 :デフォルトの名無しさん :2023/03/02(木) 13:36:36.77 ID:SYo8L+Nt.net >>968 好きな理由1つ選んで ・UTF-8の最大の特徴はASCIIと上位互換、BOMをつけたら台無しになる ・今はUTF-8 はBOM無しが主流 ・将来の外部コードはUTF-8のBOM無しになることがほぼ確定している ・移行期だけのために余計なものをつけたくない ・BOMつきだと動かないシステムがある ・文字コードの自動判定はバグやセキュリホールの温床になるので削除したい ・SJISとか時代遅れのものはもう使用してない ・BOMの曖昧さはセキュリティホールになる可能性がある ・ZWNBS との曖昧さがいやらしい ・規格で非推奨のものは避けたい ・ファイルの接続とか分割やファイル名操作などに曖昧さがあるのはいや ・不要なものを付ける理由が思いつかない ・とにかく嫌い 他にも理由はあるだろうけど、人それぞれ
970 :デフォルトの名無しさん :2023/03/02(木) 13:36:59.98 ID:QpnfRCZF.net BOMを付けておくと都合がいいケースがたまたまあっただけ
971 :デフォルトの名無しさん :2023/03/02(木) 15:35:38.23 ID:j9aKoD1k.net ・移行期だからこそBOMで他のエンコーディングと区別できるようにしておきたい場合がある ・BOMなしだと動かないシステムがある ・文字コードの自動判定はバグやセキュリホールの温床になるのでBOMを付けておきたい ・SJISはJIS X 0208で標準化されている現役の規格 ・今のUnicodeの規格ではZWNBSP(U+FEFF)ではなくWORD JOINER(U+2060)の使用が強く推奨されているのでBOMとの曖昧性は起きない ・規格で許可されてるものを無理に避ける必要はない ・許可されているものを避ける理由が思いつかない
972 :デフォルトの名無しさん :2023/03/02(木) 15:58:33.33 ID:0lgr0WAt.net すべてはカネ次第。カネを出す人が決めればいいだけ。つまり経営マターってこと。
973 :デフォルトの名無しさん :2023/03/02(木) 16:21:08.46 ID:H1OYjGZw.net > ・文字コードの自動判定はバグやセキュリホールの温床になるのでBOMを付けておきたい BOM付けてリスク変わる?
974 :デフォルトの名無しさん :2023/03/02(木) 17:03:17.28 ID:i0CU6OJ9.net そりゃ変わるだろ、BOMが付いてれば判定ミスがなくなる
975 :デフォルトの名無しさん :2023/03/02(木) 17:19:23.19 ID:H1OYjGZw.net BOM見てUTF-8だってのは自動判定の一要素でしかないしBOMなし対応いらなくなるわけじゃないから変わらないと思うんだけどな ユーザー視点の話なら一つ前のと同じこと言ってるわけだし
976 :デフォルトの名無しさん :2023/03/02(木) 17:51:26.36 ID:0lgr0WAt.net >>975 ゴールポストを動かすように自動判定の定義を動かすのはみっともないからやめとけ
977 :デフォルトの名無しさん :2023/03/02(木) 18:28:28.35 ID:l6zpHt6k.net >>975 BOMは99.999%正しく判定できる自動判定だよ 実質完全に判定できるといっても過言じゃない。
978 :デフォルトの名無しさん :2023/03/02(木) 18:43:46.01 ID:SYo8L+Nt.net >>977 自動判定のセキュリティ・リスクはそういうところじゃないよ。認識率100%でも起こる、むしろそっちが攻撃に使い易い。セキュリティまわりは勉強したことない素人が思いつくほど単純じゃない。
979 :デフォルトの名無しさん :2023/03/02(木) 19:12:41.37 ID:/D1s32sE.net >>978 BOMによる自動判定だけなら先頭の数バイトの固定パターンを見るだけの単純なものだから バグの入り込む余地はかなり小さくなるだろ
980 :デフォルトの名無しさん :2023/03/02(木) 19:16:14.91 ID:l6zpHt6k.net >>978 つまり世の中のテキストエディタからEUC-JP対応を削除しろって話をしてるの?
981 :デフォルトの名無しさん :2023/03/02(木) 19:30:13.68 ID:H1OYjGZw.net 仕様で文字コードが固定されていようがBOMで判断しようが 不正データを読んで変なことにならないようにすることと全く関係ないだろ もしかして「文字コードの自動判定」という機能単体の話でBOMチェックだけならば堅牢だって趣旨だったのか
982 :デフォルトの名無しさん :2023/03/02(木) 20:53:06.62 ID:YeVHKr55.net 「文字コードの自動判定にはセキュリティリスクがある」 ↓ BOMによる判定も自動判定だ ↓ だからBOMにセキュリティリスクがある なにこの三段論法w
983 :デフォルトの名無しさん :2023/03/02(木) 21:03:19.85 ID:4xkEbAJQ.net そんなこと言ってんのお前だけやで
984 :デフォルトの名無しさん :2023/03/02(木) 21:44:42.19 ID:H1OYjGZw.net BOMがあればデータチェックをスキップしていいと考えるやつがいることを想定するなら確かに心理的セキュリティリスクが存在することにはなる でもそんな話はしていないんだよなあ 俺の起点は>>971 に対するものでこれは>>969 を受けてのものだから最初からBOMによる自動判定の話だし
985 :蟻人間 :2023/03/02(木) 21:56:36.58 ID:ymadH6pR.net https://github.com/reactos/reactos/blob/6d57c6c91cdf2854b73b9696cd45f41322449368/base/applications/notepad/text.c#L40 ちなみにReactOSのメモ帳の文字セット判定はこうなっている。
986 :デフォルトの名無しさん :2023/03/03(金) 00:03:50.07 ID:GXuOSZhF.net >>984 すげー単純な例だとバイナリファイルの先頭に UTF-8 BOM つけてテキストに偽装、ファイアウォールやウィルスチェックをすり抜ける。うかつなソフトが自動判別してBOMを外して次段に渡してマルウェア発動。 アホみたいだがこんなんで実際に被害が出てるんだぜ。実際はこんな単純じゃなくてもっと複雑で発見され難い攻撃ができる。
987 :デフォルトの名無しさん :2023/03/03(金) 01:54:41.66 ID:BY62yhT8.net >>971 ZWNBS についてだが uniccode standard には 「BOMが不要な場合には先頭の U+FEFF は後方互換性のために ZWNBS と解釈される」という規定がある。 これと「UTF-8 に BOM は不要」という規定を合わせると...入力処理系の実装はどうなる? 曖昧さがあるだろ。
988 :デフォルトの名無しさん :2023/03/03(金) 02:53:30.47 ID:NQKxEL/3.net >>986 BOMをなくすとバイナリとして扱うのか? それともテキストして扱うのか?
989 :デフォルトの名無しさん :2023/03/03(金) 02:55:06.26 ID:NQKxEL/3.net >>987 まずお前の言う「入力処理系」が何なのか説明しろ 「あれが困る」みたいな曖昧な言い方をするな
990 :デフォルトの名無しさん :2023/03/03(金) 05:11:52.34 ID:Utd2ywhQ.net バイナリとして扱ったとしてもデータとして使うのか? それとも実行可能ファイルとして使うのか? 後者はもう BOMの使い方を大きく離脱しているな
991 :デフォルトの名無しさん :2023/03/03(金) 09:15:08.54 ID:oC7cFOXy.net I hate Windows.
992 :デフォルトの名無しさん :2023/03/03(金) 09:18:38.82 ID:oC7cFOXy.net https://answers.microsoft.com/en-us/windows/forum/all/i-hate-windows-11-so-incredibly-much-i-wish-i/877bb2ef-1784-4c8d-a341-53733ef4c1ea
993 :デフォルトの名無しさん :2023/03/03(金) 09:24:55.04 ID:oC7cFOXy.net >>980 ついでにSJIS対応もISO2022JP対応も削除で
994 :デフォルトの名無しさん :2023/03/03(金) 09:26:04.28 ID:oC7cFOXy.net >>982 が稀に観る白雉
244 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者