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/
文字コード総合スレ part13
https://mevius.5ch.net/test/read.cgi/tech/1593777227/
探検
文字コード総合スレ part14
■ このスレッドは過去ログ倉庫に格納されています
2023/03/03(金) 15:46:58.08ID:yKqwMGHT
2023/03/03(金) 18:50:36.86ID:GXuOSZhF
乙
2023/03/04(土) 05:49:15.61ID:USGrlhof
Q. UTF-8 に BOM をつけるべきですか?
A. Unocode Standard では「付けたければ付けても良いが、付ける必要はないし、付けるのはお勧めしない」と規定されています。
A. Unocode Standard では「付けたければ付けても良いが、付ける必要はないし、付けるのはお勧めしない」と規定されています。
2023/03/04(土) 11:03:14.60ID:RFNVa0Qi
>>1
>Windows NTは初代からUnicodeがネイティブの文字コードです。cp932ではありません。
filesystem の文字コードと system locale についても詳しく
あとファイル名に BOM 必要かどうかも
>Windows NTは初代からUnicodeがネイティブの文字コードです。cp932ではありません。
filesystem の文字コードと system locale についても詳しく
あとファイル名に BOM 必要かどうかも
2023/03/04(土) 11:35:06.58ID:vwOVzejx
>>3
訳し方でニュアンスが変わるから根拠となる規格の原文も載せた方が良いぞ
訳し方でニュアンスが変わるから根拠となる規格の原文も載せた方が良いぞ
2023/03/04(土) 20:52:22.05ID:Uzl83FOV
UTF-8, UTF-16, UTF-32 & BOM
https://unicode.org/faq/utf_bom.html
「付けたければ付けても良いが、付ける必要はないし、付けるのはお勧めしない」なんてどこにも書いてないんだが
https://unicode.org/faq/utf_bom.html
「付けたければ付けても良いが、付ける必要はないし、付けるのはお勧めしない」なんてどこにも書いてないんだが
2023/03/04(土) 23:54:57.70ID:q+Tu7Jlx
2023/03/05(日) 00:42:43.70ID:lXlBYG2e
>>3
何で規定されてんの?
何で規定されてんの?
2023/03/05(日) 01:11:17.97ID:JF7lH/t4
>>6
Unicode Standard を嫁。
Unicode Standard を嫁。
2023/03/05(日) 01:17:14.07ID:JF7lH/t4
>>8
規格に理由は書かれてない。
規格書では趣旨として UTF-8 では Unicode をASCII互換にするための方式みたいな説明してるので、BOM をつけると ASCII互換性が崩れるのが駄目なのかもしれない。違うかもしれない。
規格に理由は書かれてない。
規格書では趣旨として UTF-8 では Unicode をASCII互換にするための方式みたいな説明してるので、BOM をつけると ASCII互換性が崩れるのが駄目なのかもしれない。違うかもしれない。
2023/03/05(日) 10:21:41.04ID:uw77rwIl
すまそ。ここの40ページにUTF-8でBOMが許可されるって書いてあった
https://www.unicode.org/versions/Unicode15.0.0/UnicodeStandard-15.0.pdf
Table 2-4. The Seven Unicode Encoding Schemes
Encoding Scheme: UTF-8
Endian Order: N/A
BOM Allowed?: yes
https://www.unicode.org/versions/Unicode15.0.0/UnicodeStandard-15.0.pdf
Table 2-4. The Seven Unicode Encoding Schemes
Encoding Scheme: UTF-8
Endian Order: N/A
BOM Allowed?: yes
2023/03/05(日) 10:24:42.19ID:Dqp2Pk7H
The Unicode® Standard Version 15.0 – Core Specification
https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf
When converting between different encoding schemes, extreme care must be taken in handling any initial byte order marks.
For example, if one converted a UTF-16 byte serialization with an initial byte order mark to a UTF-8 byte serialization, thereby converting the byte order mark to <EF BB BF> in the UTF-8 form, the <EF BB BF> would now be ambiguous as to its status as a byte order mark (from its source) or as an initial zero width no break space.
If the UTF-8 byte serialization were then converted to UTF-16BE and the initial <EF BB BF> were converted to <FE FF>, the interpretation of the U+FEFF character would have been modified by the conversion.
This would be nonconformant behavior according to conformance clause C7, because the change between byte serializations would have resulted in modification of the interpretation of the text.
This is one reason why the use of the initial byte sequence <EF BB BF> as a signature on UTF-8 byte sequences is not recommended by the Unicode Standard.
https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf
When converting between different encoding schemes, extreme care must be taken in handling any initial byte order marks.
For example, if one converted a UTF-16 byte serialization with an initial byte order mark to a UTF-8 byte serialization, thereby converting the byte order mark to <EF BB BF> in the UTF-8 form, the <EF BB BF> would now be ambiguous as to its status as a byte order mark (from its source) or as an initial zero width no break space.
If the UTF-8 byte serialization were then converted to UTF-16BE and the initial <EF BB BF> were converted to <FE FF>, the interpretation of the U+FEFF character would have been modified by the conversion.
This would be nonconformant behavior according to conformance clause C7, because the change between byte serializations would have resulted in modification of the interpretation of the text.
This is one reason why the use of the initial byte sequence <EF BB BF> as a signature on UTF-8 byte sequences is not recommended by the Unicode Standard.
2023/03/05(日) 10:24:58.61ID:dEWQ/p/B
2023/03/05(日) 11:15:20.72ID:V5cM5Nk9
一般に言うASCII互換ってそういう意味じゃねえだろ。
2023/03/05(日) 12:40:57.35ID:/Qd0pRlS
BOMがもし先頭以外に現れたら読み飛ばす?
2023/03/05(日) 16:31:35.44ID:C3C6IsZE
>>13
ここで言われるASCII互換は、ASCII上位互換だな。
今までと同じ入力(ASCII)には同じ出力になることが期待されている。今まで勝手にBOMを付けなかったので、勝手にBOMつけるのはNGくらいの意味。
ここで言われるASCII互換は、ASCII上位互換だな。
今までと同じ入力(ASCII)には同じ出力になることが期待されている。今まで勝手にBOMを付けなかったので、勝手にBOMつけるのはNGくらいの意味。
2023/03/05(日) 17:06:23.64ID:C3C6IsZE
>>12
「UTF-8 の先頭にある U+FEFF は BOM なのか ZWNBS なのか曖昧なのが、UTF-8 に signature として <FE BB BF> をつけることを推奨しない理由の一つ。」
と書いてあるのか。一つということは他にもあるのか。
「UTF-8 の先頭にある U+FEFF は BOM なのか ZWNBS なのか曖昧なのが、UTF-8 に signature として <FE BB BF> をつけることを推奨しない理由の一つ。」
と書いてあるのか。一つということは他にもあるのか。
2023/03/05(日) 17:10:12.27ID:C3C6IsZE
>>15
「BOM が不要の場合は先頭の U+FEFF は後方互換性のために ZWNBS として扱う」と規定には書かれいる。
「BOM が不要の場合は先頭の U+FEFF は後方互換性のために ZWNBS として扱う」と規定には書かれいる。
2023/03/05(日) 17:13:23.86ID:C3C6IsZE
2023/03/05(日) 21:42:23.56ID:dEWQ/p/B
2023/03/05(日) 21:44:41.60ID:JF7lH/t4
>>20
素人発見。
素人発見。
2023/03/05(日) 21:46:48.07ID:VZfS5Nba
規格がどうであれ、可能な限りBOMをつけるのが最善策。
2023/03/05(日) 21:53:29.71ID:JF7lH/t4
2023/03/05(日) 21:56:43.19ID:dEWQ/p/B
元がASCII → UTF-8 (BOM なし)に変換? → それはただのASCII
UTF-8に対応するのであれば
128~255を許容した上で
UTF-8の仕様に対応しなければいけない
UTF-8に対応するならBOMにも対応しなければいけない
それだけのこと
UTF-8に対応するのであれば
128~255を許容した上で
UTF-8の仕様に対応しなければいけない
UTF-8に対応するならBOMにも対応しなければいけない
それだけのこと
2023/03/05(日) 21:59:56.36ID:dEWQ/p/B
UTF-8という規格に対応するのなら
BOMにも対応しろって話だな
BOMにも対応しろって話だな
2023/03/05(日) 22:09:24.16ID:VZfS5Nba
2023/03/05(日) 22:11:31.00ID:VZfS5Nba
交通事故が起きた時に、人命救助したり、クルマを安全な場所に移動させようとするのが技術者。
交通事故の責任問題ばかり考えるのが法律家。ID:JF7lH/t4は技術者にむいてない。断言する。
交通事故の責任問題ばかり考えるのが法律家。ID:JF7lH/t4は技術者にむいてない。断言する。
2023/03/05(日) 22:16:09.81ID:JF7lH/t4
>>27
悔しかったら Unicode Standard 書き換えてこいや。もしくは賛同者つのって新しい規格でも作ったら?
悔しかったら Unicode Standard 書き換えてこいや。もしくは賛同者つのって新しい規格でも作ったら?
2023/03/05(日) 22:16:39.06ID:VZfS5Nba
規格が不完全でも現実として運用していかなければならないのに、規格を盾に対応を拒否するような技術者はクビだよ
2023/03/05(日) 22:20:27.96ID:JF7lH/t4
2023/03/05(日) 22:26:54.92ID:VZfS5Nba
>>30
そのとおり。誰も問題と思ってないのだからBOM付きはどんどん増える
そのとおり。誰も問題と思ってないのだからBOM付きはどんどん増える
2023/03/05(日) 22:32:47.50ID:dEWQ/p/B
2023/03/05(日) 22:42:24.63ID:Xloi8tSE
うわあ時代遅れのBOM強要おじさんがまだ粘着してる
このクソくだらない流れいつまで続けるんだ、あほらし
このクソくだらない流れいつまで続けるんだ、あほらし
2023/03/05(日) 22:44:16.68ID:V5cM5Nk9
BOMありもなしも規格では許容していて、あとはその仕様の違いを意識せずに混ぜるなというだけの話。
その一方ですべての文字コードをUTF-8 BOMなしに統一すべきだという原理主義者が存在いる構図。
その一方ですべての文字コードをUTF-8 BOMなしに統一すべきだという原理主義者が存在いる構図。
2023/03/05(日) 23:33:36.53ID:JupVD2B6
規格に「推奨しない」って書かれているのをどうしても見なかったことにしたい人がいるみたいだな。
2023/03/05(日) 23:42:49.54ID:9BvZMLGQ
2023/03/05(日) 23:51:56.87ID:9BvZMLGQ
>>12にあったw
2023/03/05(日) 23:57:59.32ID:V5cM5Nk9
not recommended ってのは、必要性を十分検討したうえで使えってことだな。
2023/03/06(月) 00:10:15.45ID:M8d550bg
>>37
本体は2.6章にあるよ。12はその理由を説明してる感じみたい。
本体は2.6章にあるよ。12はその理由を説明してる感じみたい。
2023/03/06(月) 03:36:44.43ID:wHg1YKYv
「お前が○○するぶんには好きにしろ」でいい気がするのだが
なんか相手の使い方にそれ以上踏み込んで口を出したくてたまらない人がいるのがエンドレスの原因な気がするのだが
なんか相手の使い方にそれ以上踏み込んで口を出したくてたまらない人がいるのがエンドレスの原因な気がするのだが
2023/03/06(月) 05:16:32.79ID:5TJ6iMgZ
2023/03/06(月) 08:52:12.04ID:nYGMo+Fh
推奨されてないものを付けろだの、対応しろだの、規格無視しろだの言うから荒れてる。
つけたきゃ勝手につけろ。他人に勧めるなで終わり。
つけたきゃ勝手につけろ。他人に勧めるなで終わり。
2023/03/06(月) 09:27:16.62ID:7tSuC6ry
https://www.unicode.org/versions/Unicode15.0.0/UnicodeStandard-15.0.pdf#page=967
In UTF-8, the BOM corresponds to the byte sequence <EF BB BF>.
Although there are never any questions of byte order with UTF-8 text, this sequence can serve as signature for UTF-8 encoded text where the character set is unmarked.
(中略)
For compatibility with versions of the Unicode Standard prior to Version 3.2, the code point U+FEFF has the word-joining semantics of zero width no-break space when it is not used as a BOM. In new text, these semantics should be encoded by U+2060 word joiner.
See “Line and Word Breaking” in Section 23.2, Layout Controls, for more information.
In UTF-8, the BOM corresponds to the byte sequence <EF BB BF>.
Although there are never any questions of byte order with UTF-8 text, this sequence can serve as signature for UTF-8 encoded text where the character set is unmarked.
(中略)
For compatibility with versions of the Unicode Standard prior to Version 3.2, the code point U+FEFF has the word-joining semantics of zero width no-break space when it is not used as a BOM. In new text, these semantics should be encoded by U+2060 word joiner.
See “Line and Word Breaking” in Section 23.2, Layout Controls, for more information.
2023/03/06(月) 10:05:23.97ID:OTf/Royi
BOMというのはバイトオーダーマークの略で
リトルエンディアンかビッグエンディアンか区別するためのもの
UTF-8では必要ない
これはWindowsのメモ帳のバグでM$がUTF-8にBOMをつけたのが始まり
仕方ないからUnicodeで許可されてるだけで本来はつけてはいけない
リトルエンディアンかビッグエンディアンか区別するためのもの
UTF-8では必要ない
これはWindowsのメモ帳のバグでM$がUTF-8にBOMをつけたのが始まり
仕方ないからUnicodeで許可されてるだけで本来はつけてはいけない
2023/03/06(月) 11:39:19.84ID:VJJWQXML
2023/03/06(月) 11:42:21.59ID:VJJWQXML
山茶花(サザンカ)は本来サンザカと読まなければならないのだから、今後はサザンカは受け付けない(キリッ
2023/03/06(月) 11:50:48.53ID:OTf/Royi
2023/03/06(月) 11:51:31.28ID:M8d550bg
2023/03/06(月) 12:05:50.90ID:lfXpWlV+
2023/03/06(月) 12:36:46.99ID:VJJWQXML
ま、積極的にBOMを使うのが運用として自然だから、BOMをつけるアプリがドンドン増える。
デファクトスタンダード。
デファクトスタンダード。
2023/03/06(月) 14:23:24.15ID:diWxUEyJ
2023/03/06(月) 14:36:44.93ID:diWxUEyJ
2023/03/06(月) 14:53:51.51ID:M8d550bg
54デフォルトの名無しさん
2023/03/06(月) 18:29:55.53ID:wCDmqeE8 話の途中ですまんのだが
ASCIIって7bitのはずなのに下みたいにどう見ても先頭に0がついて8桁あるのはなんでなんや
https://medium-company.com/ascii%E3%82%B3%E3%83%BC%E3%83%89/
もしかして先頭に0をつけて8bitにしたのがメモ帳とかでは標準の表現方法なんか?
ASCIIって7bitのはずなのに下みたいにどう見ても先頭に0がついて8桁あるのはなんでなんや
https://medium-company.com/ascii%E3%82%B3%E3%83%BC%E3%83%89/
もしかして先頭に0をつけて8bitにしたのがメモ帳とかでは標準の表現方法なんか?
2023/03/06(月) 19:54:14.87ID:M8d550bg
>>54
単に 8bit = 1byte の世界で説明してるからだろう。(最近はそれしかないので、昔は 7bit = 1byte とかもあった)
単に 8bit = 1byte の世界で説明してるからだろう。(最近はそれしかないので、昔は 7bit = 1byte とかもあった)
56デフォルトの名無しさん
2023/03/06(月) 21:19:45.89ID:wCDmqeE8 そうなん?
じゃあ実際のバイナリ列は7桁なんやね
じゃあ実際のバイナリ列は7桁なんやね
2023/03/06(月) 23:59:43.85ID:6ovzh4WN
ハイともイイエともどうとでもとれる書き方なんですんのやろ
2023/03/07(火) 00:04:49.03ID:ITg7AjV1
>>56
7bitマシンならそうだな
7bitマシンならそうだな
2023/03/07(火) 00:31:08.63ID:hOnyMfzk
電子メールは7ビットで世界を駆け巡っているの?
2023/03/07(火) 00:53:18.81ID:cliNPotC
大昔は一番上のビットをパリティとして利用していたこともあつたし
2023/03/07(火) 00:56:51.64ID:6eBCzRN0
JSONではUTF8必須かつBOMを付けてはいけないと明確に定められてるんだな
全てがこのように決まれば文字コードで悩むこと無くなるな
ソース
https://www.rfc-editor.org/rfc/rfc8259.html#section-8.1
JSON text exchanged between systems that are not part of a closed ecosystem
MUST be encoded using UTF-8 [RFC3629].
Implementations MUST NOT add a byte order mark (U+FEFF)
to the beginning of a networked-transmitted JSON text.
全てがこのように決まれば文字コードで悩むこと無くなるな
ソース
https://www.rfc-editor.org/rfc/rfc8259.html#section-8.1
JSON text exchanged between systems that are not part of a closed ecosystem
MUST be encoded using UTF-8 [RFC3629].
Implementations MUST NOT add a byte order mark (U+FEFF)
to the beginning of a networked-transmitted JSON text.
2023/03/07(火) 01:03:35.76ID:l5xLBgZr
8b/10bの10bitが云々の話になるぞ
2023/03/07(火) 03:00:53.09ID:fx05/qep
>>54
M$がShiftJIS対応のために8bitに変更したんだろ
M$がShiftJIS対応のために8bitに変更したんだろ
2023/03/07(火) 09:10:52.97ID:ITg7AjV1
なんだろな。このど素人が混ざってる感じ
ASCII はもともと 1byte に 1文字を入れる設計。
6bit マシンには非対応
7bit マシンにはそのまま入れる
8bit マシンでパリティ不要なら最上位bitにゼロを入れる
という設計。最近の機器は全部8bitマシンなので最上位にゼロが入る。
(ISO 2022 拡張とかで変更できるけど)
ASCII はもともと 1byte に 1文字を入れる設計。
6bit マシンには非対応
7bit マシンにはそのまま入れる
8bit マシンでパリティ不要なら最上位bitにゼロを入れる
という設計。最近の機器は全部8bitマシンなので最上位にゼロが入る。
(ISO 2022 拡張とかで変更できるけど)
2023/03/07(火) 09:56:10.33ID:iWhTsxXS
ShiftJIS対応だけのために8bitに変更とか日本はどんだけ凄いんだよ…
2023/03/07(火) 10:08:55.63ID:fx05/qep
本質がわかってないやつがいるが
論点はBOM禁止という話
M$のバグのために仕様を歪めるな!
論点はBOM禁止という話
M$のバグのために仕様を歪めるな!
2023/03/07(火) 12:02:26.19ID:CdvGJ9oA
将来SJIS(cp932)やそれ以外のcp(cp65001を除く)は全部無くなるんだろうし
その頃にはUTF-8にBOM付けるやつは居なくなると想定していて
その準備段階として現状UTF-8にBOM付けるべきでないってスタンス
今がんばってBOM付けろって言ってるアホは死ぬまでSJIS浸かってろ
その頃にはUTF-8にBOM付けるやつは居なくなると想定していて
その準備段階として現状UTF-8にBOM付けるべきでないってスタンス
今がんばってBOM付けろって言ってるアホは死ぬまでSJIS浸かってろ
68デフォルトの名無しさん
2023/03/07(火) 12:58:43.14ID:5oG+IrWl >>67
そのとおり。死ぬまでSJIS浸かってる人は今後もずっと存在し続けるからBOMつけるのが最適解だよ。
そのとおり。死ぬまでSJIS浸かってる人は今後もずっと存在し続けるからBOMつけるのが最適解だよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 【悲報】中国を煽り運転に例えたネトウヨさん、完全に論破されてしまう [268718286]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 高市「金正恩総書記と会談したい」 国交ある国ですらまともに外交出来ないのに北朝鮮相手に何が出来るのこいつ [878970802]
- 玉川徹「日中の対立が深まるとそれで利益を得る、ビジネスにしている人たちがいる」 有識者「おまえやんw」 [279254606]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
