プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
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/
探検
文字コード総合スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/12/17(月) 16:48:24.47ID:Pfqpaohb587デフォルトの名無しさん
2021/03/04(木) 22:40:28.52ID:jw7hSq/n >>586
タグを示す<>や実体参照で使う&;
タグを示す<>や実体参照で使う&;
588デフォルトの名無しさん
2021/03/04(木) 23:10:32.38ID:BThS1gIP その手の手書きする奴は図形文字じゃないと逆に不便じゃね?
589デフォルトの名無しさん
2021/03/04(木) 23:54:15.04ID:jw7hSq/n エスケープ文字に制御文字を使うと手で入力するのが面倒になるし
かといって図形文字を使うと文章中の文字と混同しないように注意しないといけなくなるから難しいか。
SJISの0x5c問題もこれが原因だよね。
かといって図形文字を使うと文章中の文字と混同しないように注意しないといけなくなるから難しいか。
SJISの0x5c問題もこれが原因だよね。
590デフォルトの名無しさん
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の理解を諦めたぞ・・・・・・
・古い規格は数万払って買え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の理解を諦めたぞ・・・・・・
592デフォルトの名無しさん
2021/03/06(土) 02:52:41.34ID:VRCzgeXN まず unicode と ISO10646 は建前上は別の規格で用語も適用範囲も一致していないと理解することから。
593デフォルトの名無しさん
2021/03/06(土) 08:51:58.30ID:Q5bee5g2594デフォルトの名無しさん
2021/03/06(土) 11:40:26.99ID:6TyCcGYh Unicode公式 「ISOのUCS-4はUTF-32と同義語なんやでw」
おれ 「UCSは符号化文字集合でUTF-32は符号化方式では?ムキーーーーーーッ??!」
つらい
全てを投げ出して北海道グルメ旅行したい
おれ 「UCSは符号化文字集合でUTF-32は符号化方式では?ムキーーーーーーッ??!」
つらい
全てを投げ出して北海道グルメ旅行したい
595デフォルトの名無しさん
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.
違うねん。
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
UCS-4はUCSの部分集合だと思ってたけど実は違ったのかw
こんなことに悩んでたのかよクソすぎるw
598デフォルトの名無しさん
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.
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%イコールなのが分かったわサンガツな
ただ10646:2020でいう「synonymous」が
どの程度の「同義」なのかが分からなかったけど
10646:2017を引用してくれたおかげで100%イコールなのが分かったわサンガツな
600デフォルトの名無しさん
2021/03/07(日) 12:38:04.56ID:21gOPzKM やっとこれでクソつまらん文字コードからC++の参考書に戻れる
やったぜ
やったぜ
601デフォルトの名無しさん
2021/03/07(日) 23:47:47.88ID:gN+mrqU2 UTF (Unicode Transformation Format)という言葉も昔の遺産だよね
今作り直すならUnicode Encoding SchemeでUES-8とかになるのかな
今作り直すならUnicode Encoding SchemeでUES-8とかになるのかな
602デフォルトの名無しさん
2021/03/08(月) 00:17:56.33ID:8d5Xwcwc ちゃうねん。もともと UTF の U は unicode じゃなくて UCS や。Universal の U。
603デフォルトの名無しさん
2021/03/08(月) 11:33:52.88ID:3+uDlPP2 文字コードという呼び方をなくして
文字シーケンスと言ったほうが良いと思う
1文字は最大8バイトで表現する
文字シーケンスと言ったほうが良いと思う
1文字は最大8バイトで表現する
604デフォルトの名無しさん
2021/03/08(月) 12:58:27.48ID:P3HygzNP EUCのU
605デフォルトの名無しさん
2021/03/08(月) 13:47:48.99ID:47hpvSbS >>602
おおっと、これは失礼しました
おおっと、これは失礼しました
606デフォルトの名無しさん
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が標準になった。
Unicodeの種別をUTF-なんとかと言い出したのは、1文字を16ビットで表現することに限界を感じたため。UTF-8は一番やりたくなかったけど、世界中の文字を切り替えて表現する方法は支持されなかったから、最小単位が8バイトのUTF-8が標準になった。
608デフォルトの名無しさん
2021/03/08(月) 23:41:28.57ID:ccXfg1Ko SJISのように2バイトで表現するキャラクタセットとの相性を重視している場合はUTF-16が使われる。
609デフォルトの名無しさん
2021/03/09(火) 09:45:27.84ID:p4cuNQqC >>607
UTF-8が標準になったのはUnix系の互換性の問題
多バイト固定すると、文字列が1バイト前提であるC言語とC言語で作られてる
Unixのソースコードの多くを修正する必要があった。
そのため互換性があるUTF-8が作られた。
UTF-8が標準になったのはUnix系の互換性の問題
多バイト固定すると、文字列が1バイト前提であるC言語とC言語で作られてる
Unixのソースコードの多くを修正する必要があった。
そのため互換性があるUTF-8が作られた。
610デフォルトの名無しさん
2021/03/09(火) 11:10:37.15ID:oV9GYLDS >>609
EUCを知ってますか?
EUCを知ってますか?
611デフォルトの名無しさん
2021/03/09(火) 11:13:42.05ID:p4cuNQqC612デフォルトの名無しさん
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にこだわったのは欧米人
615デフォルトの名無しさん
2021/03/09(火) 17:53:03.04ID:JYZP+6rB616デフォルトの名無しさん
2021/03/09(火) 19:47:21.10ID:qz7mFwyh UTF-16はユニコードの文学的表現と、あわしろ氏が言ってた。
617デフォルトの名無しさん
2021/03/09(火) 19:49:34.87ID:N+Xx0u4G じゃあ間違いってことだな
618デフォルトの名無しさん
2021/03/09(火) 22:12:38.95ID:uPwAQTWz UTF-16 にこだわったわけじゃないだろ。
昔こだわってたのは16ビット固定長。
当時の非力なパソコンだと都合が良かった。
ワークステーションとか性能に余裕がある機械使ってる人たちから絶対に文字数足りなくなる阿呆仕様とか言われてたが、仕方なかった。
後に性能に余裕が出てきた時に既に16ビットでOSとかAPI設計・使用していたので、16ビット可変長を導入した。それが今の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)の世界
いつの間にかUTF-8に乗り換えようとしてる?とうに乗り換えた?
WWW(のHTTP)の世界
620デフォルトの名無しさん
2021/03/15(月) 00:38:41.86ID:nWbOihFX 0x7Fだけでなく0xFFがDELとして定義されていないのは
0x80-0xFFに文字が定義された時には既に紙テープは使われなくなっていたという事なのかな
0x80-0xFFに文字が定義された時には既に紙テープは使われなくなっていたという事なのかな
621デフォルトの名無しさん
2021/03/15(月) 08:07:57.71ID:GifvrUGq その紙テープとDELの話、機能的に必要だからそうしたというわけじゃないと思うがな。
DELは「削除する」文字なのに紙テープは「削除された」文字になるよね。
DELは「削除する」文字なのに紙テープは「削除された」文字になるよね。
622デフォルトの名無しさん
2021/03/15(月) 09:04:25.39ID:IkMjMWUP その 0x80-0xFF というのが 0xFF に文字を割当ててる ISO8859の時代ことなら、もう紙テープななんか使ってなかった。
それより古いの、例えば JISX0201 のカナとかの時代でもほぼ紙テープなんか使ってなかったけど 0xFF は未定義で文字は割当なかった。
それより古いの、例えば JISX0201 のカナとかの時代でもほぼ紙テープなんか使ってなかったけど 0xFF は未定義で文字は割当なかった。
623デフォルトの名無しさん
2021/03/16(火) 14:48:47.22ID:OdNNK18i 「削除する」というよりか「これは間違いだから無視してね」という印、みたいな感じ
624デフォルトの名無しさん
2021/03/16(火) 16:03:04.87ID:NeNdvqnK モールス信号は単音と長音の組み合わせだからビット表示みたいなもんかな
625デフォルトの名無しさん
2021/03/16(火) 21:56:06.00ID:fetr9hD4 へー、DELをバックスペースの意味で使うようになったのが後付けなのか。
https://ja.wikipedia.org/wiki/削除文字
https://ja.wikipedia.org/wiki/削除文字
626デフォルトの名無しさん
2021/03/18(木) 22:37:10.93ID:bBSRtLnn 制御文字はASCIIコードの最初を占めているのにCUIでのコマンドに使わないのはもったいないと思う。
昔は制御文字をコマンドとして使っていたんだから
例えばSMTPは制御文字のSOH STX ETX EOTをコマンドにしてもよかったのでは
昔は制御文字をコマンドとして使っていたんだから
例えばSMTPは制御文字のSOH STX ETX EOTをコマンドにしてもよかったのでは
627デフォルトの名無しさん
2021/03/19(金) 00:35:37.02ID:pLBLA8wx あのう…、素人がひとつお尋ねしたいのですけど、よろしいですか?
大昔からWindowsパソコンを使っていて
今までにエディタで書いたテキスト資産をたくさん持つ人が
これからもWindowsパソコンを使い続けると仮定するなら
新しく書くテキストデータの文字コードは何を使えば良いのでしょう?
従来どおりShift-JIS? それともUTF-8?
なお、テキストは書くだけではなく他人から貰ったデータを読むこともあります
大昔からWindowsパソコンを使っていて
今までにエディタで書いたテキスト資産をたくさん持つ人が
これからもWindowsパソコンを使い続けると仮定するなら
新しく書くテキストデータの文字コードは何を使えば良いのでしょう?
従来どおりShift-JIS? それともUTF-8?
なお、テキストは書くだけではなく他人から貰ったデータを読むこともあります
628デフォルトの名無しさん
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が使えなくなることは、想定しなくてもいいと思います。
メモ帳がBOM付きUTF-8に対応したりとしているので、UTF-8でも特に問題ありません。
テキストエディタやOffice製品でSJISが使えなくなることは、想定しなくてもいいと思います。
630デフォルトの名無しさん
2021/03/19(金) 01:23:29.57ID:hh9Kt8XT 日本語の世界でSJISがなくなることは想定しなくてよいという意味です。
631デフォルトの名無しさん
2021/03/19(金) 06:55:45.01ID:MDPOlxpG632デフォルトの名無しさん
2021/03/19(金) 07:01:30.18ID:pLBLA8wx633デフォルトの名無しさん
2021/03/19(金) 07:03:11.89ID:pLBLA8wx >>631
いや、絵文字は一生使うつもりがありませんw
いや、絵文字は一生使うつもりがありませんw
634デフォルトの名無しさん
2021/03/19(金) 07:53:48.58ID:/oetvOh6 自分自身が絵文字を使うかどうかは重要じゃなくて、他人の書いた絵文字を含む文書を劣化させずに保存できることが重要
>>631
絵文字は不要、誰が絵文字なんかを文字コードの中に押し込んだんだ?
絵文字は不要、誰が絵文字なんかを文字コードの中に押し込んだんだ?
636デフォルトの名無しさん
2021/03/19(金) 08:45:35.33ID:pPRPone1637デフォルトの名無しさん
2021/03/19(金) 09:58:34.93ID:n/AYlKWK638デフォルトの名無しさん
2021/03/19(金) 13:03:56.18ID:eiJMVgO4 最初にコード化したのは誰かって意味ならワープロメーカーとかじゃね?
unicodeに入れたのはgoogle。
その元になった絵文字セットのうちの1つを最初に作ったのはドコモ
unicodeに入れたのはgoogle。
その元になった絵文字セットのうちの1つを最初に作ったのはドコモ
639デフォルトの名無しさん
2021/03/19(金) 14:00:06.98ID:D6AA0Wwh MSが何を考えているか外からではわからないけど
S-JISは切り捨てる可能性があるんじゃないかな
S-JISは切り捨てる可能性があるんじゃないかな
640デフォルトの名無しさん
2021/03/19(金) 14:15:07.57ID:/oetvOh6641デフォルトの名無しさん
2021/03/19(金) 15:26:48.13ID:eiJMVgO4 >>633
macだとcuiでも絵文字使ってるプログラムが増えてて、見やすいしわりと便利よ
macだとcuiでも絵文字使ってるプログラムが増えてて、見やすいしわりと便利よ
642デフォルトの名無しさん
2021/03/19(金) 16:19:10.35ID:MDPOlxpG Powerlineとかのプログラミング用の絵文字
あれUnicodeに入れてくれないかな?
あれUnicodeに入れてくれないかな?
644デフォルトの名無しさん
2021/03/19(金) 17:45:59.37ID:hh9Kt8XT Unicodeの絵文字は全世界で使われているからね。
645デフォルトの名無しさん
2021/03/19(金) 17:46:52.40ID:hh9Kt8XT 日本の絵文字がベースだから、日本人っぽいものが多い。
646デフォルトの名無しさん
2021/03/19(金) 18:07:03.09ID:/oetvOh6647デフォルトの名無しさん
2021/03/19(金) 22:38:34.45ID:pLBLA8wx あのう…、皆さん色々ありがとうございます
それで…、結局のところ私は…、これから先テキストを新しく書いた時に
そのテキストデータの文字コードを何にして保存すれば良いのでしょうか?
それで…、結局のところ私は…、これから先テキストを新しく書いた時に
そのテキストデータの文字コードを何にして保存すれば良いのでしょうか?
648デフォルトの名無しさん
2021/03/19(金) 23:10:26.99ID:gtzZCHhj 何回も何回も裏切られてきたからな
一寸先は闇
UTFが優勢ではあるけど
何があるかわからん
一寸先は闇
UTFが優勢ではあるけど
何があるかわからん
>>647
BOM 付きUTF-8 でいいんじゃないでしょうか…
BOM 付きUTF-8 でいいんじゃないでしょうか…
650デフォルトの名無しさん
2021/03/20(土) 00:19:36.84ID:4rbcgKwq 異体字セレクタは無視可能だから>>643みたいな対比が重要な用途には向かん
651デフォルトの名無しさん
2021/03/20(土) 03:11:58.85ID:D8GShjRw >>649
UTF8 に BOM はいらんだろ。(原理主義)
UTF8 に BOM はいらんだろ。(原理主義)
652デフォルトの名無しさん
2021/03/20(土) 03:46:25.95ID:XiFOMzCU >>647
文字コードはなんでもいいので、...を空文字列に置換してから保存してください
文字コードはなんでもいいので、...を空文字列に置換してから保存してください
653デフォルトの名無しさん
2021/03/20(土) 04:03:35.66ID:HNARUvnS >>651
627のwindowsでの質問なのでbom付きのが良い
627のwindowsでの質問なのでbom付きのが良い
654デフォルトの名無しさん
2021/03/20(土) 06:00:23.16ID:fwPpsQIN BOM付きはエラーの原因になったりするんだよね
647レベルだと恐らく原因にたどり着けない
647レベルだと恐らく原因にたどり着けない
655デフォルトの名無しさん
2021/03/20(土) 12:04:30.81ID:OmO/62/g 個人用なら UTF8一択でいいよ
ただし、以下が注意かな
1. 納品先、提出先の指定、プロジェクトでの指定があるなら合わせる
2. UTF8に対応していない古いツール類(エディタ含む)を使って処理しているなら合わせる
ただし、以下が注意かな
1. 納品先、提出先の指定、プロジェクトでの指定があるなら合わせる
2. UTF8に対応していない古いツール類(エディタ含む)を使って処理しているなら合わせる
656デフォルトの名無しさん
2021/03/20(土) 13:21:00.17ID:N0CH58op >>654
エラーの原因になるというか、そのソフトがUTF8シグネチャに対応してないってだけだな。
結局のところ使うソフトや環境次第。
WindowsメインならUTF8シグネチャ付きの方がトラブルは少ないだろう。
エラーの原因になるというか、そのソフトがUTF8シグネチャに対応してないってだけだな。
結局のところ使うソフトや環境次第。
WindowsメインならUTF8シグネチャ付きの方がトラブルは少ないだろう。
657デフォルトの名無しさん
2021/03/20(土) 14:11:52.17ID:IyzEzHor BOM なしUTF-8(UTF-8N)が良い
Windows と言っても、WSL でLinux を使うかも知れないから、
BOMを付けると、動かないかも
Windows と言っても、WSL でLinux を使うかも知れないから、
BOMを付けると、動かないかも
658デフォルトの名無しさん
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。
出てくる単語を片っ端からググって再確認しつつ、もっとも普遍的原理的な
考え方を自分の頭の中で屁理屈として組み立てあげました!
結論:これから私は、書いたテキストを原則UTF-8で保存する
(→必要に応じてBOMをつけて保存し使うこともある)
本当に勉強になりました。2日で10年分(か20年分)勉強した感じですw。
660デフォルトの名無しさん
2021/03/20(土) 18:05:23.87ID:fwPpsQIN もつかれ
661デフォルトの名無しさん
2021/03/21(日) 02:58:59.19ID:Hmh4/82J UTF8はBOMがないのが正式。規格書嫁。
BOMが付くのは他の文字コードから変換の時に頭悪いソフトが削り損ねたか、
メモ帳のように文字コード対応が不完全なソフトが、独自の文字コード判別機能のために規格無視で突っ込んだ
くらい。
BOMが付くのは他の文字コードから変換の時に頭悪いソフトが削り損ねたか、
メモ帳のように文字コード対応が不完全なソフトが、独自の文字コード判別機能のために規格無視で突っ込んだ
くらい。
662デフォルトの名無しさん
2021/03/21(日) 08:53:26.10ID:nNrBMbyx BOMはオプション的な扱いだけど正式なRFCの仕様だが?
プロトコルとして文字コードを決め打ちする場合とか他の方法で文字コードを受け渡す
仕組みがある場合はBOMを使用すべきではないというくらい。
そもそも「文字コード対応が不完全なソフト」って、UTF-8決め打ちのソフトのことじゃね?
プロトコルとして文字コードを決め打ちする場合とか他の方法で文字コードを受け渡す
仕組みがある場合はBOMを使用すべきではないというくらい。
そもそも「文字コード対応が不完全なソフト」って、UTF-8決め打ちのソフトのことじゃね?
663デフォルトの名無しさん
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とそれ以外の文字コード判別は無理
UTF-8のBOMがなかったら以前の文字コード(日本だったらSJIS)とUTF-8の区別がつかないんだよ。
UTF-16やUTF-32なら1バイト単位で見た時にNULL文字が多数登場するという特徴があるが
UTF-8はバイト列をフルに使って詰め込んでるから区別することが不可能
UTF-8のBOMはUTF-8とそれ以外の文字コードを区別するための機能
昔は文字コードが自動判定できてたって?それはSJISとEUC-JPみたいに
バイト列をフルに使ってない文字コードかつ、日本語しか考慮してないから
できてたことなんだよ。UTF-8とそれ以外の文字コード判別は無理
665デフォルトの名無しさん
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) を仮定して残すのが正しい実装だ。
例えば 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) を仮定して残すのが正しい実装だ。
666デフォルトの名無しさん
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でも有効だと書いてあるだろう。
「本来は〜だった。」が正しいだろうな。
その意味で解釈するのはストリームの先頭以外に現れた場合に限るとされているし
今ではその意味でも使用すべきではないということになった。
>2) バイト列化した UTF-16 と UTF-32 の先頭に来た場合は Byte Order Mark
RFCで言う"BOM"にはバイトオーダーマークとシグネチャの両方の機能があって、
バイトオーダーマークとしての意味はUTF-16やUTF-32だけだけれども
シグネチャとしての意味はUTF-8でも有効だと書いてあるだろう。
667デフォルトの名無しさん
2021/03/21(日) 12:02:55.18ID:Hmh4/82J 最新規格でも ZWNBS が正式。BOM は例外的な使用法。
「だった」って過去形で主張するんなら規格のどこに過去形書いてあるか、どの規格で廃止されたか示してみろ。
カタカナでバイトオーダーマークって書いても誤魔化せないぞ。
「だった」って過去形で主張するんなら規格のどこに過去形書いてあるか、どの規格で廃止されたか示してみろ。
カタカナでバイトオーダーマークって書いても誤魔化せないぞ。
668ID:pLBLA8wx
2021/03/21(日) 13:46:50.50ID:hcZhKSEU けんかをやめて 二人をとめて
私のためにBOMで争わないで もうこれ以上
私のためにBOMで争わないで もうこれ以上
669デフォルトの名無しさん
2021/03/21(日) 14:28:20.22ID:nNrBMbyx ああそうだな。文字の定義自体は変わっていないからその意味では過去形はおかしかったかな。
ただRFC3629では、今は同じ意味のU+2060があるからそっちを使うことを「強く推奨する」と。
ただRFC3629では、今は同じ意味のU+2060があるからそっちを使うことを「強く推奨する」と。
670デフォルトの名無しさん
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としての使い道だけが残った
>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としての使い道だけが残った
671デフォルトの名無しさん
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として解釈するというだけだ
Byte Order Markの意味わかってんのか?
UTF-8は1バイト単位で扱う文字列なんだから、2として使い方に
意味がないのは当たり前だろ。使えないというより意味がない
使っては駄目という意味じゃない。使ってもいいが本来の意味がないというだけだ。
16bitまたは32bitのときの順番を判断するためにあるのに
Byte(バイト) Order(順番) Mark(記号)
つまりU+FEFFは「文章のどこでも使っていい文字」で
先頭に来た場合に限りBOMとして解釈するというだけだ
672デフォルトの名無しさん
2021/03/23(火) 08:39:38.88ID:VNfq1a/Y Can a UTF-8 data stream contain the BOM character (in UTF-8 form)? If yes, then can I still assume the remaining UTF-8 bytes are in big-endian order?
http://www.unicode.org/faq/utf_bom.html#bom5
Yes, UTF-8 can contain a BOM. However, it makes no difference as to the endianness of the byte stream.
UTF-8 always has the same byte order. An initial BOM is only used as a signature - an indication that an otherwise unmarked text file is in UTF-8.
Note that some recipients of UTF-8 encoded data do not expect a BOM.
Where UTF-8 is used transparently in 8-bit environments,
the use of a BOM will interfere with any protocol or file format that expects specific ASCII characters at the beginning,
such as the use of "#!" of at the beginning of Unix shell scripts.
http://www.unicode.org/faq/utf_bom.html#bom5
Yes, UTF-8 can contain a BOM. However, it makes no difference as to the endianness of the byte stream.
UTF-8 always has the same byte order. An initial BOM is only used as a signature - an indication that an otherwise unmarked text file is in UTF-8.
Note that some recipients of UTF-8 encoded data do not expect a BOM.
Where UTF-8 is used transparently in 8-bit environments,
the use of a BOM will interfere with any protocol or file format that expects specific ASCII characters at the beginning,
such as the use of "#!" of at the beginning of Unix shell scripts.
673デフォルトの名無しさん
2021/03/28(日) 20:48:56.89ID:24lC/lyM そもそも全く意味も機能も異なるZERO WIDTH NO-BREAK SPACEとBYTE ORDER MARKを
U+FEFFという単一のコードポイントに統合した馬鹿は何処の誰なん?
U+FEFFという単一のコードポイントに統合した馬鹿は何処の誰なん?
674デフォルトの名無しさん
2021/03/29(月) 10:11:40.65ID:wK+S1L2g >>673
英語よめないの?
ZERO WIDTH NO-BREAK SPACE(幅がない改行をしないスペース)
BOMは幅があるか?ないだろ
改行するか?しないだろ
BOMが途中に出てくることがあるか?
その場合どうすればいいんだ?
無視する=幅がなくて改行しないスペースだろ
英語よめないの?
ZERO WIDTH NO-BREAK SPACE(幅がない改行をしないスペース)
BOMは幅があるか?ないだろ
改行するか?しないだろ
BOMが途中に出てくることがあるか?
その場合どうすればいいんだ?
無視する=幅がなくて改行しないスペースだろ
675デフォルトの名無しさん
2021/03/29(月) 16:21:58.12ID:OlONkL8s 落ち着け
ZWNBS は無視しちゃ駄目だよ。そこで自動改行禁止というマークなので、ちゃんと処理しないと駄目。
ZWNBS は無視しちゃ駄目だよ。そこで自動改行禁止というマークなので、ちゃんと処理しないと駄目。
676デフォルトの名無しさん
2021/03/29(月) 17:07:30.02ID:wK+S1L2g >>675
自動改行禁止の意味わかってるか?
無視する=そこに文字がないのと同じように扱うから
自動改行も禁止なんだよ
BOMとZERO WIDTH NO-BREAK SPACEを同じにしたと言うより
BOMはZERO WIDTH NO-BREAK SPACEと同じ動きをする文字だということ
自動改行禁止の意味わかってるか?
無視する=そこに文字がないのと同じように扱うから
自動改行も禁止なんだよ
BOMとZERO WIDTH NO-BREAK SPACEを同じにしたと言うより
BOMはZERO WIDTH NO-BREAK SPACEと同じ動きをする文字だということ
677デフォルトの名無しさん
2021/03/29(月) 21:25:17.42ID:FXjqyr6T あまり文字コード関係ないけど笑ったので貼っとく
https://twitter.com/ryancdotorg/status/1375484757916672000
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/ryancdotorg/status/1375484757916672000
https://twitter.com/5chan_nel (5ch newer account)
678デフォルトの名無しさん
2021/03/30(火) 02:24:24.90ID:T6lwQIyt >>676
嘘をつくな。
BOM は内部コードに変換する時に取り除くべき文字。制御コードとしての機能はない。
ZWNBS は内部コードでも残り制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持つ。
嘘をつくな。
BOM は内部コードに変換する時に取り除くべき文字。制御コードとしての機能はない。
ZWNBS は内部コードでも残り制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持つ。
679デフォルトの名無しさん
2021/03/30(火) 02:31:28.79ID:ToWHw8Xp >>678
だからそのBOMが文書の内部に出てきたら
どう処理するんだよって話なんだが
データに絶対入らないように誰かが制限してるか?
バイナリエディタを使っても入れることが出来ないか?
入っていたら落ちたほうがいいか?
だからそのBOMが文書の内部に出てきたら
どう処理するんだよって話なんだが
データに絶対入らないように誰かが制限してるか?
バイナリエディタを使っても入れることが出来ないか?
入っていたら落ちたほうがいいか?
680デフォルトの名無しさん
2021/03/30(火) 03:04:28.57ID:T6lwQIyt681デフォルトの名無しさん
2021/03/30(火) 05:29:26.08ID:ToWHw8Xp >>680
だからバイナリエディタでBOMと同じコードを文章中に入れたものを
読み込んだら、どういう挙動をするべきかって話をしてるんだが
制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持たせたほうがいいだろうね
だからバイナリエディタでBOMと同じコードを文章中に入れたものを
読み込んだら、どういう挙動をするべきかって話をしてるんだが
制御コードとして前後の文字を一体として接続し、その間での改行を禁止する意味を持たせたほうがいいだろうね
682デフォルトの名無しさん
2021/03/30(火) 09:51:00.56ID:T6lwQIyt 持たせたほうがいいも何も、規格上はそういう意味だよ。
バイナリ・エディタで入れようが、テキスト・エディタで入れようが ZWNBS として扱う。
もともと規格では
U+FEFF は制御コードとして ZERO WIDTH NO-BREAK SPACE としての機能を持つ。(その場所での分割を禁止する)
そしてこれが、UTF-16, UTF-32 ストリームの先頭に来た場合には Byte Order Mark (エンディアンの指定)という特別な機能を持つ
さらに先頭の BOMは Unicode Signature (その文章が Unicode で書かれている印)として使用できる。
この先頭の U+FEFF は制御コードとしての機能はないので処理の際には取り除け。
先頭に U+FEFF が二つ続いた場合は一つ目は BOM で、二つ目は ZWNBS として解釈せよ。
UTF-16LE や UTF-16BE などのようにエンディア決め打ちの文字コードや、他の方法でエンディアンが指定されている場合は、先頭にあっても ZWNBS で BOM ではない。
ファイルを結合する時とか、そのままつなぐと、後ろにファイルの先頭の U+FEFF が ZWNBS として解釈されるので取り除くのを忘れんな
その後の改訂で
やっぱ使ってみると、同じコードポイントに複数の機能があるのはややこしいので U+2060 WORD JOINWER ってのを作った。
この WORD JOINER は ZWNBS と全く同じ機能だけど、BOM としては使うことができない。制御コードには今後はこっちを使うのを強く推奨。
でも歴史的な経緯と過去の資産があるから、文章の途中に出てくる U+FEFF は、これまでどおり の意味で解釈せよ。
バイナリ・エディタで入れようが、テキスト・エディタで入れようが ZWNBS として扱う。
もともと規格では
U+FEFF は制御コードとして ZERO WIDTH NO-BREAK SPACE としての機能を持つ。(その場所での分割を禁止する)
そしてこれが、UTF-16, UTF-32 ストリームの先頭に来た場合には Byte Order Mark (エンディアンの指定)という特別な機能を持つ
さらに先頭の BOMは Unicode Signature (その文章が Unicode で書かれている印)として使用できる。
この先頭の U+FEFF は制御コードとしての機能はないので処理の際には取り除け。
先頭に U+FEFF が二つ続いた場合は一つ目は BOM で、二つ目は ZWNBS として解釈せよ。
UTF-16LE や UTF-16BE などのようにエンディア決め打ちの文字コードや、他の方法でエンディアンが指定されている場合は、先頭にあっても ZWNBS で BOM ではない。
ファイルを結合する時とか、そのままつなぐと、後ろにファイルの先頭の U+FEFF が ZWNBS として解釈されるので取り除くのを忘れんな
その後の改訂で
やっぱ使ってみると、同じコードポイントに複数の機能があるのはややこしいので U+2060 WORD JOINWER ってのを作った。
この WORD JOINER は ZWNBS と全く同じ機能だけど、BOM としては使うことができない。制御コードには今後はこっちを使うのを強く推奨。
でも歴史的な経緯と過去の資産があるから、文章の途中に出てくる U+FEFF は、これまでどおり の意味で解釈せよ。
683デフォルトの名無しさん
2021/03/31(水) 01:51:23.09ID:AtIsL56M asciiの0-32までってc記法あるの以外ほぼ死語かと思ってたんだけど
バイナリエディタでMS系のフォーマット(特にOffice)で汎用されてるのな
セパレータ系とかなるべく原義に沿おうとしてて好感
いつもprintable文字抽出だけしてたからなかなか気付かんかった
バイナリエディタでMS系のフォーマット(特にOffice)で汎用されてるのな
セパレータ系とかなるべく原義に沿おうとしてて好感
いつもprintable文字抽出だけしてたからなかなか気付かんかった
684デフォルトの名無しさん
2021/03/31(水) 01:57:57.39ID:AtIsL56M 論理的に考えてcrlfが正義とか言い張り続けてたり、なんかこだわりあるんかねMS
685デフォルトの名無しさん
2021/03/31(水) 09:30:13.62ID:ekNiD538 > 論理的に考えてcrlfが正義とか言い張り続けてたり
なんのこと?
意味的にCR LFが正しいことに間違いはないし、CR LF対応は
意味のないプライドとかじゃなくて互換性のためにでしょ
それにLinuxとの互換性のためにLFだけのファイルもメモ帳で受け付けるようになったじゃん
開発ツールに限れば昔からLFだけでも認めてた。
なんのこと?
意味的にCR LFが正しいことに間違いはないし、CR LF対応は
意味のないプライドとかじゃなくて互換性のためにでしょ
それにLinuxとの互換性のためにLFだけのファイルもメモ帳で受け付けるようになったじゃん
開発ツールに限れば昔からLFだけでも認めてた。
686デフォルトの名無しさん
2021/03/31(水) 09:35:15.80ID:1T2H/5i8 >>685
crlfで正しいと思ってるよ、まあ蛇足だった
crlfで正しいと思ってるよ、まあ蛇足だった
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
