文字コード総合スレ part14

■ このスレッドは過去ログ倉庫に格納されています
2023/03/03(金) 15:46:58.08ID:yKqwMGHT
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/
2023/03/03(金) 18:50:36.86ID:GXuOSZhF
2023/03/04(土) 05:49:15.61ID:USGrlhof
Q. UTF-8 に BOM をつけるべきですか?
A. Unocode Standard では「付けたければ付けても良いが、付ける必要はないし、付けるのはお勧めしない」と規定されています。
2023/03/04(土) 11:03:14.60ID:RFNVa0Qi
>>1
>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

「付けたければ付けても良いが、付ける必要はないし、付けるのはお勧めしない」なんてどこにも書いてないんだが
2023/03/04(土) 23:54:57.70ID:q+Tu7Jlx
>>4
Windowsの場合はUnicodeというのはUTF-16LEを示す模様
UTF-16LEはリトルエンディアン固定でBOMは付かないフォーマット

UnicodeといってもUTF-8ではない
2023/03/05(日) 00:42:43.70ID:lXlBYG2e
>>3
何で規定されてんの?
2023/03/05(日) 01:11:17.97ID:JF7lH/t4
>>6
Unicode Standard を嫁。
2023/03/05(日) 01:17:14.07ID:JF7lH/t4
>>8
規格に理由は書かれてない。
規格書では趣旨として 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
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.
2023/03/05(日) 10:24:58.61ID:dEWQ/p/B
>>10
ASCIIは文字コードで言えば0~127までの文字
UTF-8が使う128~255はASCII互換ではない

128~255を許容するのであれば
BOMもこの範囲に含まれるのでASCII互換
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くらいの意味。
2023/03/05(日) 17:06:23.64ID:C3C6IsZE
>>12
「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 として扱う」と規定には書かれいる。
2023/03/05(日) 17:13:23.86ID:C3C6IsZE
>>18
途中で送ってしまった。
当然途中にある U+FEFF は全て Zero Width Non-Breakable Space (ここで改行禁止くらいの意味)として扱われる。
2023/03/05(日) 21:42:23.56ID:dEWQ/p/B
>>16
ASCIIと同じ出力になるって言うなら
0~127までの文字しか使えないじゃんw

まさか最初さえ同じなら、後ろは違ってもいいとかいう
意味不明な話してるの?
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
>>22
とうとう規格無視しろって言い始めた。
オレオレ基準は他所でやれ。技術者どうしの合意は規格を使う。お前に発言する資格はない。
2023/03/05(日) 21:56:43.19ID:dEWQ/p/B
元がASCII → UTF-8 (BOM なし)に変換? → それはただのASCII

UTF-8に対応するのであれば
128~255を許容した上で
UTF-8の仕様に対応しなければいけない

UTF-8に対応するならBOMにも対応しなければいけない
それだけのこと
2023/03/05(日) 21:59:56.36ID:dEWQ/p/B
UTF-8という規格に対応するのなら
BOMにも対応しろって話だな
2023/03/05(日) 22:09:24.16ID:VZfS5Nba
>>23
これは規格外をどうするかという話なので、規格の話をしても意味がないぞ
君はエンジニアにむいてない。技術者じゃなくて法律家にでもなれ。
2023/03/05(日) 22:11:31.00ID:VZfS5Nba
交通事故が起きた時に、人命救助したり、クルマを安全な場所に移動させようとするのが技術者。
交通事故の責任問題ばかり考えるのが法律家。ID:JF7lH/t4は技術者にむいてない。断言する。
2023/03/05(日) 22:16:09.81ID:JF7lH/t4
>>27
悔しかったら Unicode Standard 書き換えてこいや。もしくは賛同者つのって新しい規格でも作ったら?
2023/03/05(日) 22:16:39.06ID:VZfS5Nba
規格が不完全でも現実として運用していかなければならないのに、規格を盾に対応を拒否するような技術者はクビだよ
2023/03/05(日) 22:20:27.96ID:JF7lH/t4
>>29
規格が不完全なら規格を正しく修正するのが技術者の仕事。
お前の主張が正しいなら規格はとっくに直されてる。変更されないのは今の規格が正しいということ。
2023/03/05(日) 22:26:54.92ID:VZfS5Nba
>>30
そのとおり。誰も問題と思ってないのだからBOM付きはどんどん増える
2023/03/05(日) 22:32:47.50ID:dEWQ/p/B
>>27
つまり文字化けという事故が起きたときに
文字コードを安全に変換できるようにUTF-8のBOMは使われているということか
2023/03/05(日) 22:42:24.63ID:Xloi8tSE
うわあ時代遅れのBOM強要おじさんがまだ粘着してる
このクソくだらない流れいつまで続けるんだ、あほらし
2023/03/05(日) 22:44:16.68ID:V5cM5Nk9
BOMありもなしも規格では許容していて、あとはその仕様の違いを意識せずに混ぜるなというだけの話。
その一方ですべての文字コードをUTF-8 BOMなしに統一すべきだという原理主義者が存在いる構図。
2023/03/05(日) 23:33:36.53ID:JupVD2B6
規格に「推奨しない」って書かれているのをどうしても見なかったことにしたい人がいるみたいだな。
2023/03/05(日) 23:42:49.54ID:9BvZMLGQ
>>35
そんなに強く否定してるとこあったっけ
原文どれだ
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はその理由を説明してる感じみたい。
2023/03/06(月) 03:36:44.43ID:wHg1YKYv
「お前が○○するぶんには好きにしろ」でいい気がするのだが
なんか相手の使い方にそれ以上踏み込んで口を出したくてたまらない人がいるのがエンドレスの原因な気がするのだが
2023/03/06(月) 05:16:32.79ID:5TJ6iMgZ
>>40
自分が口出してるという自覚はないのか?
「UTF-8でBOMは許容されている。推奨されていないだけ。」
これが事実だろ

これ以上のことは言わんでいい
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.
2023/03/06(月) 10:05:23.97ID:OTf/Royi
BOMというのはバイトオーダーマークの略で
リトルエンディアンかビッグエンディアンか区別するためのもの
UTF-8では必要ない
これはWindowsのメモ帳のバグでM$がUTF-8にBOMをつけたのが始まり
仕方ないからUnicodeで許可されてるだけで本来はつけてはいけない
2023/03/06(月) 11:39:19.84ID:VJJWQXML
>>44
ついてた時にどうするかが重要なのであって、そこが自由裁量であり経営判断。
Windowsの資産をすべて捨てる決断をするのはカネを払う経営者やユーザーであって技術者ではない。
2023/03/06(月) 11:42:21.59ID:VJJWQXML
山茶花(サザンカ)は本来サンザカと読まなければならないのだから、今後はサザンカは受け付けない(キリッ
2023/03/06(月) 11:50:48.53ID:OTf/Royi
>>45
お前のようなやつがいるからWindowsはいつまでもShiftJISを使い続けることになる
BOMはUnicodeでは認められていない。禁止すべきものだ。
2023/03/06(月) 11:51:31.28ID:M8d550bg
>>45
入力がBOMつきUTF-8に指定されている場合はBOMとして処理しろ。
入力がBOMなしUTF-8に指定されている場合はZWNBSとして処理しろ。
2023/03/06(月) 12:05:50.90ID:lfXpWlV+
>>47
推奨されてなくても一応認められてるでしょ
何でそこを捻じ曲げるの
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況