文字コード総合スレ 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

まさか最初さえ同じなら、後ろは違ってもいいとかいう
意味不明な話してるの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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