文字コード総合スレ Part12

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/12/17(月) 16:48:24.47ID:Pfqpaohb
プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
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 http://mevius.5ch.net/test/read.cgi/tech/1516629503/
2021/02/24(水) 16:32:05.41ID:aaBs9O4Y
日本人が作る日本人のためのパソコンで
日本で使われている漢字が表示できないのは
マイナスでしかない。だからパソコン屋は
当初のSJISで定義されていた基本的な文字集合を超えた
文字を漢字ROMボードとして提供するしか道はなかった

そしてWindowsの時代となりフォントがOSに搭載されるようになってから
各メーカーが拡張していた漢字を相互運用できなくなるのは困るため
Microsoftは各拡張SJISを統合して改めてCP932として標準化した

もともとSJISを作ったのはMicrosoftなわけで
WindowsのSJISは、初期のSJISの正統後継といえる
2021/02/24(水) 17:13:57.11ID:O/RKRWyd
PC-98シリーズの漢字ROM、テキストVRAMはJISコードベースだ。SJISではない。
2021/02/24(水) 18:38:57.51ID:CaexoUYp
PC-98のMS-DOSでShift_JISのファイルを何も問題なく開けたけど
漢字ROMがJISだとするとファイルを開く時にどこかでShift_JISからJISに変換していたという事?
2021/02/24(水) 18:44:43.54ID:zChO2spG
変換というかシフトしてる分を戻してるだけだな
2021/02/25(木) 16:21:35.59ID:dtuEc+as
可変長で無限に文字を追加できる文字コードなると
全ての文字を実体参照で記録する形式にするしかないのでは?
2021/02/25(木) 17:21:18.30ID:bCEhRyYb
プレーンなgrepができなければ文字コード失格。
甲斐武田氏の家臣だけを抽出する正規表現クラス\p{KaiTakeda}みたいなのも使えなければダメ。
2021/02/25(木) 19:01:31.51ID:FipxGJhu
>>574
VRAM が JIS ベースだ、という話というだけであって、ファイルが S-JIS だろうが UTF-16 であろうがどーでもいい話かと
2021/02/25(木) 19:53:40.28ID:d2pfH4ce
JISとSJISとEUC-JPの文字コードは
比較的単純な計算で変換することが出来るから
パフォーマンスの影響も少なくメモリも食わない

Unicodeの場合は変換にテーブルが必要になるから
MS-DOSの時代ではちょっと困るだろうな
2021/02/26(金) 23:06:18.58ID:mLFL/iLf
MS-DOS時代のテキストエディターで複数の文字コードに対応したものってあったんだろうか
2021/02/27(土) 00:23:55.40ID:9B/eAMtf
nemacsか
2021/02/27(土) 03:48:22.68ID:8wUBQ4y1
単純計算だと非Unicode文字コード種ごとに128KBの変換テーブルが必要になる。
当時の揮発メモリに全部乗せたまま使うのは当然無理。LFUなりLRUなり使ってしのぐしかない。
2021/02/27(土) 07:46:18.27ID:H3Yv4o4X
>>580
demacs/mule
2021/03/03(水) 00:32:39.49ID:Fut02B/b
日本のsc2って今休業中なのかな
Unicode 14のalphaでKana Extended-Aに文字突っ込まれてるけどコメントしなくていいのか
このままbetaに進むと変更が難しくなりそうだけど
2021/03/04(木) 21:20:40.72ID:jw7hSq/n
ASCIIの制御文字にエスケープ文字(0x1b)や
その他の字の区切りを表す制御文字があるのに
メールでもHTMLでも制御文字は使わずに0x20-0x7eの印字可能文字の一部を
エスケープ文字として使うようになったのはなぜなのか
2021/03/04(木) 22:12:23.62ID:BThS1gIP
ここで言うHTMLのエスケープ文字ってどれのこと?
2021/03/04(木) 22:40:28.52ID:jw7hSq/n
>>586
タグを示す<>や実体参照で使う&;
2021/03/04(木) 23:10:32.38ID:BThS1gIP
その手の手書きする奴は図形文字じゃないと逆に不便じゃね?
2021/03/04(木) 23:54:15.04ID:jw7hSq/n
エスケープ文字に制御文字を使うと手で入力するのが面倒になるし
かといって図形文字を使うと文章中の文字と混同しないように注意しないといけなくなるから難しいか。
SJISの0x5c問題もこれが原因だよね。
2021/03/05(金) 02:36:48.86ID:ZMKDWzIT
一言で言えば既存のテキストエディターで書けることを重視したから。
専用のハイパーテキスト用ツールは昔からあったけど不便だった。
591デフォルトの名無しさん
垢版 |
2021/03/05(金) 17:53:33.38ID:Zdg3nLGk
ISO系(特にUnicode)が理解できなさすぎて辛い・・・・・・
・古い規格は数万払って買えw
・原文英語だけど頑張って読めw
・1993年の初版からいーっぱい改定して規格書いーっぱいあるでw
・JIS 「こうやで(決してISO版原文の解説ではない)」
・UnicodeとISO/IEC 10646で同じ用語使ってますw
・規格書で定義されてない用語を平気で使いますw
・規格書にUCS-2, UCS-4の定義, 解説がない
・文献によってコードポイントの表記が微妙に違う
UCS-4はU+00000000のからなのか, U+0000からなのか?w
・UCS-2/4は符号化文字集合だぞwあっ、やっぱり文字符号化方式だぞw
・CJK 「俺らも理解してくれよなw」
・日本人 「Unicodeが理解できん?こうやで!^^(ソースなし!w)」

おれはUnicodeの理解を諦めたぞ・・・・・・
2021/03/06(土) 02:52:41.34ID:VRCzgeXN
まず unicode と ISO10646 は建前上は別の規格で用語も適用範囲も一致していないと理解することから。
2021/03/06(土) 08:51:58.30ID:Q5bee5g2
>>591
Unicodeは諦めるとして
次はPOSIXとC++のどちらに挑戦する?
594デフォルトの名無しさん
垢版 |
2021/03/06(土) 11:40:26.99ID:6TyCcGYh
Unicode公式 「ISOのUCS-4はUTF-32と同義語なんやでw」

おれ 「UCSは符号化文字集合でUTF-32は符号化方式では?ムキーーーーーーッ??!」

つらい
全てを投げ出して北海道グルメ旅行したい
2021/03/06(土) 12:58:55.62ID:VRCzgeXN
>>594
違うねん。
ISO10646 でも UCS-4 と UTF-32 は同じ意味で符号化方式やねん。
UCS: 符号化文字集合
UCS-4: 符号化方式
UTF-32: 符号化方式

ISO/IEC 10646:2017 の定義だと
9.4 UTF-32 (UCS-4)
UTF-32 (or UCS-4) is the UCS encoding form that assigns each UCS
scalar value to a single unsigned 32-bit code unit. The terms UTF-32
and UCS-4 can be used interchangeably to designate this encoding form.
596デフォルトの名無しさん
垢版 |
2021/03/06(土) 15:26:58.97ID:6TyCcGYh
10646:2017だと明確に同義語として使われてたのか。
その版は持ってなくて中身確認できなかったから助かったわ
597デフォルトの名無しさん
垢版 |
2021/03/06(土) 15:41:25.54ID:6TyCcGYh
マジで疲れた
UCS-4はUCSの部分集合だと思ってたけど実は違ったのかw
こんなことに悩んでたのかよクソすぎるw
2021/03/06(土) 18:39:02.04ID:VRCzgeXN
もしかして 10646:2020 を参照してん? なら UCS-4 という用語自体が過去の遺物扱いや。
10.4 UTF-32
UTF-32 is the UCS encoding form that assigns each UCS scalar value to a single unsigned 32-bit code unit.
NOTE — Former editions of this document included “UCS-4” as an alternate term synonymous with “UTF-32”. Use of the term “UCS-4” to refer to this encoding form is deprecated.
599デフォルトの名無しさん
垢版 |
2021/03/07(日) 12:36:06.36ID:21gOPzKM
あ、そこは見た
ただ10646:2020でいう「synonymous」が
どの程度の「同義」なのかが分からなかったけど
10646:2017を引用してくれたおかげで100%イコールなのが分かったわサンガツな
600デフォルトの名無しさん
垢版 |
2021/03/07(日) 12:38:04.56ID:21gOPzKM
やっとこれでクソつまらん文字コードからC++の参考書に戻れる
やったぜ
2021/03/07(日) 23:47:47.88ID:gN+mrqU2
UTF (Unicode Transformation Format)という言葉も昔の遺産だよね
今作り直すならUnicode Encoding SchemeでUES-8とかになるのかな
2021/03/08(月) 00:17:56.33ID:8d5Xwcwc
ちゃうねん。もともと UTF の U は unicode じゃなくて UCS や。Universal の U。
2021/03/08(月) 11:33:52.88ID:3+uDlPP2
文字コードという呼び方をなくして
文字シーケンスと言ったほうが良いと思う
1文字は最大8バイトで表現する
604デフォルトの名無しさん
垢版 |
2021/03/08(月) 12:58:27.48ID:P3HygzNP
EUCのU
2021/03/08(月) 13:47:48.99ID:47hpvSbS
>>602
おおっと、これは失礼しました
2021/03/08(月) 15:45:58.81ID:nvShaTc9
UTF-の後に続く数字は当初はバージョン番号のような意味だったのが
途中からビット数を表す意味に変わったようにも見える
607デフォルトの名無しさん
垢版 |
2021/03/08(月) 23:38:40.10ID:ccXfg1Ko
>>606
Unicodeの種別をUTF-なんとかと言い出したのは、1文字を16ビットで表現することに限界を感じたため。UTF-8は一番やりたくなかったけど、世界中の文字を切り替えて表現する方法は支持されなかったから、最小単位が8バイトのUTF-8が標準になった。
608デフォルトの名無しさん
垢版 |
2021/03/08(月) 23:41:28.57ID:ccXfg1Ko
SJISのように2バイトで表現するキャラクタセットとの相性を重視している場合はUTF-16が使われる。
2021/03/09(火) 09:45:27.84ID:p4cuNQqC
>>607
UTF-8が標準になったのはUnix系の互換性の問題
多バイト固定すると、文字列が1バイト前提であるC言語とC言語で作られてる
Unixのソースコードの多くを修正する必要があった。
そのため互換性があるUTF-8が作られた。
610デフォルトの名無しさん
垢版 |
2021/03/09(火) 11:10:37.15ID:oV9GYLDS
>>609
EUCを知ってますか?
2021/03/09(火) 11:13:42.05ID:p4cuNQqC
>>610
EUCとUTF-8と同じようにC言語とC言語で作られてる
Unixのソースコードと互換性があるように作られたことを知ってますか?
そしてEUCがどうしましたか?
612デフォルトの名無しさん
垢版 |
2021/03/09(火) 17:39:10.59ID:oV9GYLDS
キャラクタセットは選ぶもの
613デフォルトの名無しさん
垢版 |
2021/03/09(火) 17:40:37.43ID:oV9GYLDS
アスキー文字は1バイトで同じ文字コードにしたいのはあたりまえ
614デフォルトの名無しさん
垢版 |
2021/03/09(火) 17:41:09.24ID:oV9GYLDS
UTF-16にこだわったのは欧米人
2021/03/09(火) 17:53:03.04ID:JYZP+6rB
>>612
UTF-16を選べるというのなら選んでみるが良い
互換性がないキャラクタセットはサポートされていない
616デフォルトの名無しさん
垢版 |
2021/03/09(火) 19:47:21.10ID:qz7mFwyh
UTF-16はユニコードの文学的表現と、あわしろ氏が言ってた。
2021/03/09(火) 19:49:34.87ID:N+Xx0u4G
じゃあ間違いってことだな
2021/03/09(火) 22:12:38.95ID:uPwAQTWz
UTF-16 にこだわったわけじゃないだろ。
昔こだわってたのは16ビット固定長。
当時の非力なパソコンだと都合が良かった。

ワークステーションとか性能に余裕がある機械使ってる人たちから絶対に文字数足りなくなる阿呆仕様とか言われてたが、仕方なかった。

後に性能に余裕が出てきた時に既に16ビットでOSとかAPI設計・使用していたので、16ビット可変長を導入した。それが今のUTF-16。
619デフォルトの名無しさん
垢版 |
2021/03/10(水) 23:22:37.08ID:rTwzo8YF
ISO/IEC 8859-1前提で作られていたはずなのに
いつの間にかUTF-8に乗り換えようとしてる?とうに乗り換えた?
WWW(のHTTP)の世界
2021/03/15(月) 00:38:41.86ID:nWbOihFX
0x7Fだけでなく0xFFがDELとして定義されていないのは
0x80-0xFFに文字が定義された時には既に紙テープは使われなくなっていたという事なのかな
2021/03/15(月) 08:07:57.71ID:GifvrUGq
その紙テープとDELの話、機能的に必要だからそうしたというわけじゃないと思うがな。
DELは「削除する」文字なのに紙テープは「削除された」文字になるよね。
2021/03/15(月) 09:04:25.39ID:IkMjMWUP
その 0x80-0xFF というのが 0xFF に文字を割当ててる ISO8859の時代ことなら、もう紙テープななんか使ってなかった。
それより古いの、例えば JISX0201 のカナとかの時代でもほぼ紙テープなんか使ってなかったけど 0xFF は未定義で文字は割当なかった。
2021/03/16(火) 14:48:47.22ID:OdNNK18i
「削除する」というよりか「これは間違いだから無視してね」という印、みたいな感じ
2021/03/16(火) 16:03:04.87ID:NeNdvqnK
モールス信号は単音と長音の組み合わせだからビット表示みたいなもんかな
2021/03/16(火) 21:56:06.00ID:fetr9hD4
へー、DELをバックスペースの意味で使うようになったのが後付けなのか。
https://ja.wikipedia.org/wiki/削除文字
2021/03/18(木) 22:37:10.93ID:bBSRtLnn
制御文字はASCIIコードの最初を占めているのにCUIでのコマンドに使わないのはもったいないと思う。
昔は制御文字をコマンドとして使っていたんだから
例えばSMTPは制御文字のSOH STX ETX EOTをコマンドにしてもよかったのでは
2021/03/19(金) 00:35:37.02ID:pLBLA8wx
あのう…、素人がひとつお尋ねしたいのですけど、よろしいですか?

大昔からWindowsパソコンを使っていて
今までにエディタで書いたテキスト資産をたくさん持つ人が
これからもWindowsパソコンを使い続けると仮定するなら
新しく書くテキストデータの文字コードは何を使えば良いのでしょう?

従来どおりShift-JIS? それともUTF-8?
なお、テキストは書くだけではなく他人から貰ったデータを読むこともあります
2021/03/19(金) 00:37:01.06ID:pLBLA8wx
ゴメンなさい、最後の一文は
コピペしてテキストをマージすることもある、の意です
629デフォルトの名無しさん
垢版 |
2021/03/19(金) 01:21:48.92ID:hh9Kt8XT
Windowsは表面的にはシフトJISですが、内部はUTF-16です。

メモ帳がBOM付きUTF-8に対応したりとしているので、UTF-8でも特に問題ありません。

テキストエディタやOffice製品でSJISが使えなくなることは、想定しなくてもいいと思います。
630デフォルトの名無しさん
垢版 |
2021/03/19(金) 01:23:29.57ID:hh9Kt8XT
日本語の世界でSJISがなくなることは想定しなくてよいという意味です。
2021/03/19(金) 06:55:45.01ID:MDPOlxpG
>>627
UTF-8一択
絵文字も使えない文字コードなんて使えるか
2021/03/19(金) 07:01:30.18ID:pLBLA8wx
>>629->>630
有り難うございます、てことは…
別に今後もずっとSJISだけを使い続けて良い…という言い方もできますかね?

実はメールでテキストをやり取りする際、相手がHTMLメール使っていたりすると
なぜか「〜」が文字化けしたり、しなかったり…、コピペの時に苦労しておるのです
2021/03/19(金) 07:03:11.89ID:pLBLA8wx
>>631
いや、絵文字は一生使うつもりがありませんw
2021/03/19(金) 07:53:48.58ID:/oetvOh6
自分自身が絵文字を使うかどうかは重要じゃなくて、他人の書いた絵文字を含む文書を劣化させずに保存できることが重要
2021/03/19(金) 08:22:24.74ID:p1PI4fNB
>>631
絵文字は不要、誰が絵文字なんかを文字コードの中に押し込んだんだ?
2021/03/19(金) 08:45:35.33ID:pPRPone1
>>635
Appleだよ

https://ja.wikipedia.org/wiki/MacJapanese
2021/03/19(金) 09:58:34.93ID:n/AYlKWK
>>636
具体的にどれが?
一般的にはガラケーの各キャリアでは?
2021/03/19(金) 13:03:56.18ID:eiJMVgO4
最初にコード化したのは誰かって意味ならワープロメーカーとかじゃね?
unicodeに入れたのはgoogle。
その元になった絵文字セットのうちの1つを最初に作ったのはドコモ
2021/03/19(金) 14:00:06.98ID:D6AA0Wwh
MSが何を考えているか外からではわからないけど
S-JISは切り捨てる可能性があるんじゃないかな
2021/03/19(金) 14:15:07.57ID:/oetvOh6
>>639
「切り捨てる」の定義次第でしょ。
ゴールポストを動かすように定義を変えることもできる。
2021/03/19(金) 15:26:48.13ID:eiJMVgO4
>>633
macだとcuiでも絵文字使ってるプログラムが増えてて、見やすいしわりと便利よ
2021/03/19(金) 16:19:10.35ID:MDPOlxpG
Powerlineとかのプログラミング用の絵文字
あれUnicodeに入れてくれないかな?
2021/03/19(金) 16:31:55.75ID:AfDayCIW
歩香桂銀金王角飛と杏圭全馬龍の逆さ文字は追加してほしいなぁ……
644デフォルトの名無しさん
垢版 |
2021/03/19(金) 17:45:59.37ID:hh9Kt8XT
Unicodeの絵文字は全世界で使われているからね。
645デフォルトの名無しさん
垢版 |
2021/03/19(金) 17:46:52.40ID:hh9Kt8XT
日本の絵文字がベースだから、日本人っぽいものが多い。
2021/03/19(金) 18:07:03.09ID:/oetvOh6
>>643
文字を所定角度に回転させる異体字セレクタがいくつもあれば一番いいんだけど
30度ごとならアナログ時計の表現にも使えそう
2021/03/19(金) 22:38:34.45ID:pLBLA8wx
あのう…、皆さん色々ありがとうございます

それで…、結局のところ私は…、これから先テキストを新しく書いた時に
そのテキストデータの文字コードを何にして保存すれば良いのでしょうか?
2021/03/19(金) 23:10:26.99ID:gtzZCHhj
何回も何回も裏切られてきたからな
一寸先は闇
UTFが優勢ではあるけど
何があるかわからん
2021/03/19(金) 23:12:46.09ID:AfDayCIW
>>647
BOM 付きUTF-8 でいいんじゃないでしょうか…
2021/03/20(土) 00:19:36.84ID:4rbcgKwq
異体字セレクタは無視可能だから>>643みたいな対比が重要な用途には向かん
2021/03/20(土) 03:11:58.85ID:D8GShjRw
>>649
UTF8 に BOM はいらんだろ。(原理主義)
2021/03/20(土) 03:46:25.95ID:XiFOMzCU
>>647
文字コードはなんでもいいので、...を空文字列に置換してから保存してください
2021/03/20(土) 04:03:35.66ID:HNARUvnS
>>651
627のwindowsでの質問なのでbom付きのが良い
654デフォルトの名無しさん
垢版 |
2021/03/20(土) 06:00:23.16ID:fwPpsQIN
BOM付きはエラーの原因になったりするんだよね
647レベルだと恐らく原因にたどり着けない
2021/03/20(土) 12:04:30.81ID:OmO/62/g
個人用なら UTF8一択でいいよ

ただし、以下が注意かな
1. 納品先、提出先の指定、プロジェクトでの指定があるなら合わせる
2. UTF8に対応していない古いツール類(エディタ含む)を使って処理しているなら合わせる
2021/03/20(土) 13:21:00.17ID:N0CH58op
>>654
エラーの原因になるというか、そのソフトがUTF8シグネチャに対応してないってだけだな。
結局のところ使うソフトや環境次第。
WindowsメインならUTF8シグネチャ付きの方がトラブルは少ないだろう。
2021/03/20(土) 14:11:52.17ID:IyzEzHor
BOM なしUTF-8(UTF-8N)が良い

Windows と言っても、WSL でLinux を使うかも知れないから、
BOMを付けると、動かないかも
2021/03/20(土) 14:43:30.24ID:ATRyxlqT
winにはofficeとか、utf-8でもbomがないと化けるメジャーソフトもあるんだよなあ
659ID:pLBLA8wx
垢版 |
2021/03/20(土) 17:23:15.32ID:kRdQNH2J
皆さん本当に色々とありがとうございました!

出てくる単語を片っ端からググって再確認しつつ、もっとも普遍的原理的な
考え方を自分の頭の中で屁理屈として組み立てあげました!

結論:これから私は、書いたテキストを原則UTF-8で保存する
     (→必要に応じてBOMをつけて保存し使うこともある)

本当に勉強になりました。2日で10年分(か20年分)勉強した感じですw。
660デフォルトの名無しさん
垢版 |
2021/03/20(土) 18:05:23.87ID:fwPpsQIN
もつかれ
2021/03/21(日) 02:58:59.19ID:Hmh4/82J
UTF8はBOMがないのが正式。規格書嫁。
BOMが付くのは他の文字コードから変換の時に頭悪いソフトが削り損ねたか、
メモ帳のように文字コード対応が不完全なソフトが、独自の文字コード判別機能のために規格無視で突っ込んだ
くらい。
2021/03/21(日) 08:53:26.10ID:nNrBMbyx
BOMはオプション的な扱いだけど正式なRFCの仕様だが?
プロトコルとして文字コードを決め打ちする場合とか他の方法で文字コードを受け渡す
仕組みがある場合はBOMを使用すべきではないというくらい。
そもそも「文字コード対応が不完全なソフト」って、UTF-8決め打ちのソフトのことじゃね?
2021/03/21(日) 10:07:00.18ID:ZMzh4Q+Z
>>661
UTF-8のBOMがなかったら以前の文字コード(日本だったらSJIS)とUTF-8の区別がつかないんだよ。
UTF-16やUTF-32なら1バイト単位で見た時にNULL文字が多数登場するという特徴があるが
UTF-8はバイト列をフルに使って詰め込んでるから区別することが不可能
UTF-8のBOMはUTF-8とそれ以外の文字コードを区別するための機能

昔は文字コードが自動判定できてたって?それはSJISとEUC-JPみたいに
バイト列をフルに使ってない文字コードかつ、日本語しか考慮してないから
できてたことなんだよ。UTF-8とそれ以外の文字コード判別は無理
2021/03/21(日) 10:20:33.48ID:Axw052vZ
>>661
>UTF8はBOMがないのが正式。規格書嫁。

であれば規格書()にわざわざ UTF-8 のための BOM 0xEF 0xBB 0xBF が定義されているのは、なぜでしょうか?
2021/03/21(日) 10:46:26.36ID:Hmh4/82J
規格はちゃんと読めとしか。
例えば Unicode 13.0 での扱いは
1) U+FEFF は基本は Zero Width Non-Breaking Space
2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark
3) Unicode Signature としても使用できるが、プロトコルが型無しの場合に使用し、それ以外では使用を推奨しない
という扱いだ。1) と 2) と 3) は別の使い方だと理解するところから始めろ
UTF-8 でも 1) は普通に使える、2)としては使用できない、3)はプロトコル次第(HTTPだと非推奨、FTPだと可)

UTF-16 から UTF-8 に変換する時は 1) の意味なら残す、2) の意味なら削る、3) の意味ならプロトコル次第。
不明ならば基本の 1) を仮定して残すのが正しい実装だ。
2021/03/21(日) 11:32:14.01ID:nNrBMbyx
>1) U+FEFF は基本は Zero Width Non-Breaking Space

「本来は〜だった。」が正しいだろうな。
その意味で解釈するのはストリームの先頭以外に現れた場合に限るとされているし
今ではその意味でも使用すべきではないということになった。

>2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark

RFCで言う"BOM"にはバイトオーダーマークとシグネチャの両方の機能があって、
バイトオーダーマークとしての意味はUTF-16やUTF-32だけだけれども
シグネチャとしての意味はUTF-8でも有効だと書いてあるだろう。
2021/03/21(日) 12:02:55.18ID:Hmh4/82J
最新規格でも ZWNBS が正式。BOM は例外的な使用法。
「だった」って過去形で主張するんなら規格のどこに過去形書いてあるか、どの規格で廃止されたか示してみろ。
カタカナでバイトオーダーマークって書いても誤魔化せないぞ。
668ID:pLBLA8wx
垢版 |
2021/03/21(日) 13:46:50.50ID:hcZhKSEU
けんかをやめて 二人をとめて
私のためにBOMで争わないで もうこれ以上
2021/03/21(日) 14:28:20.22ID:nNrBMbyx
ああそうだな。文字の定義自体は変わっていないからその意味では過去形はおかしかったかな。
ただRFC3629では、今は同じ意味のU+2060があるからそっちを使うことを「強く推奨する」と。
2021/03/21(日) 15:38:22.99ID:ahwL4b0J
https://www.unicode.org/charts/PDF/UFE70.pdf
>may be used to detect byte order by contrast with the noncharacter code point FFFE
>use as an indication of non-breaking is deprecated; see 2060 instead
non-breakingとして使うのはdeprecatedだと言ってるし過去形でいいんじゃね
BOMとしての使い道だけが残った
2021/03/21(日) 23:32:21.54ID:ZMzh4Q+Z
> UTF-8 でも 1) は普通に使える、2)としては使用できない、3)はプロトコル次第(HTTPだと非推奨、FTPだと可)

Byte Order Markの意味わかってんのか?
UTF-8は1バイト単位で扱う文字列なんだから、2として使い方に
意味がないのは当たり前だろ。使えないというより意味がない
使っては駄目という意味じゃない。使ってもいいが本来の意味がないというだけだ。

16bitまたは32bitのときの順番を判断するためにあるのに
Byte(バイト) Order(順番) Mark(記号)

つまりU+FEFFは「文章のどこでも使っていい文字」で
先頭に来た場合に限りBOMとして解釈するというだけだ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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