文字コード総合スレ Part12

■ このスレッドは過去ログ倉庫に格納されています
2018/12/16(日) 12:38:15.61ID:VlX3xGEw
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/
2019/08/31(土) 15:56:52.05ID:3i1dPJsj
ん?支持しなくて良いよ
2019/08/31(土) 17:12:51.44ID:0iGUnrw4
>>597
じゃあ >>586 はスレの流れを遮って,古い話題を煽り文句で蒸し返した挙句,
碌な知識も持ってないことを晒してしまったヤベー奴ってことになるけどいいの?
2019/08/31(土) 17:59:12.56ID:Yn5v13ie
ネットウヨw
604デフォルトの名無しさん
垢版 |
2019/08/31(土) 20:21:37.85ID:5EL66xzp
re2のようにUTF-8にしか正式対応していない正規表現ライブラリもある。
2019/08/31(土) 22:52:53.39ID:0iGUnrw4
寧ろre2がUTF-32に対応すべきでは。
もしくはiconv使う。
2019/08/31(土) 22:58:57.55ID:3i1dPJsj
UTF-32対応は難しいから無理だろ
607デフォルトの名無しさん
垢版 |
2019/09/01(日) 01:36:48.58ID:sYwYgS29
iconv禁止
2019/09/01(日) 09:07:17.74ID:XF6G4Ohn
NKF(Network Kanji code conversion Filter)を使えば?

Ruby にも、NKF モジュールがある
2019/09/01(日) 10:46:26.40ID:YneNC5Ev
別にコード変換ツールを探してるわけじゃなくね?w
610デフォルトの名無しさん
垢版 |
2019/09/01(日) 10:52:49.46ID:kCJZVLuH
どこぞの皇帝や中国王朝みたいに文字の方を変えて宇宙統一してしまえば良い
文字コードに合った文字だけ使えば解決
611デフォルトの名無しさん
垢版 |
2019/09/01(日) 12:53:54.91ID:k0czTyLP
収録文字数が2の16乗を超えた時点でUTF16は破綻したんだから、サロゲートペアなんて
煩雑な延命策を取らず、UTF32に完全移行すべきだった。

UTF16を残したせいでUTF32にも皺寄せが来ている。UTF32ではU+FFFFFFFFまで
対応できるはずなのに、UTF16のサロゲートペアで表せるU+10FFFFまでに符号空間が
制約されてしまった。つまり、実質的に32ビットではなく21ビットコードになってしまった。

UTF16を全廃しUTF32を本来の32ビットまで拡張すれば、異字体を異字体セレクタなしで
収録できるから、すべての文字を32ビットで表せて単純明快になる。
2019/09/01(日) 13:07:58.05ID:lmQdJ5gb
>>611
いろいろ間違ってるなw

まずUTF-16という仕様にはサロゲートペアが最初から含まれてる
UTF32に完全移行って何を移行するっていうんだ?互換性がないんだから
既に使われてるものを簡単に変えられるわけがない。
UTF32が21bitコードになってしまったのはUTF-8のせいだ
21bitあれば209万7152文字を表現できるんだから異字体セレクタなしで十分収録できる
2019/09/01(日) 13:11:25.72ID:xmxF7u0H
異体字セレクタが導入されたのは別にコードポイントが足りないからじゃないだろ。
異体字なんて数が限られているし、それ以上に役に立たない絵文字をバンバン追加している状況だし。
2019/09/01(日) 13:35:49.57ID:JCPxJyAV
MSがUTF-16を採用したせいで廃止しようにもできないだろ
CP932とSJISとUTF16が生き残ってるのもだいたいこいつのせいだ
615デフォルトの名無しさん
垢版 |
2019/09/01(日) 13:40:59.73ID:kCJZVLuH
>>612
おまいもかなり可笑しいなω
616デフォルトの名無しさん
垢版 |
2019/09/01(日) 13:42:43.07ID:k0czTyLP
>>612
>まずUTF-16という仕様にはサロゲートペアが最初から含まれてる

あれ、そうだった? だとしたら、UTF16は最初から破綻していたってことだな。
変なものを作らずにUTF32を導入すべきだった。

>UTF32に完全移行って何を移行するっていうんだ?互換性がないんだから
>既に使われてるものを簡単に変えられるわけがない。

シフトJISからUnicodeへも互換性がないのに移行が進んだだろ。

>UTF32が21bitコードになってしまったのはUTF-8のせいだ

UTF8は可変長だから、32ビットでも表そう思えば表せる。
21ビットになったのはUTF16のせい。

>21bitあれば209万7152文字を表現できるんだから異字体セレクタなしで十分収録できる

収録した記号は他にも色々あるし、U+F0000〜U+10FFFFは外字領域だし、
21ビットだけでは心許ない。

>>613
異字体セレクタは同じコードでもAdobe-Japan1とMoji_Johoで字体が違う
滅茶苦茶な欠陥規格だから、さっさと廃止した方が良い。
2019/09/01(日) 14:01:22.04ID:JCPxJyAV
(もしかして: フォント)
2019/09/01(日) 14:17:44.56ID:Cv4S4gQH
>>616
> UTF8は可変長だから、32ビットでも表そう思えば表せる。
無理。UTF-8は「自由に可変にできる文字コード」ではない。
ビットパターンが決まっていて最大21bitまでしか表現できない
619デフォルトの名無しさん
垢版 |
2019/09/01(日) 14:29:25.97ID:k0czTyLP
>>618
原理的にはUTF8は「自由に可変にできる文字コード」で32ビットも表せる。
UTF16の制約で符号空間が21ビットのU+10FFFFまでと定められたから、
UTF8もそれを超えるコードを規格外とみなすようにしただけ。
2019/09/01(日) 14:38:49.28ID:5y1tL0M+
>>619
エンコードと文字コードを混ぜんな
おまえみたいな奴がいるから混乱するんだよ
少しは馬鹿を自覚して黙ってろ
2019/09/01(日) 15:12:24.21ID:VpClr4jS
>>614
JavaやJavaScriptの内部エンコーディングもUTF-16だが
2019/09/01(日) 15:24:13.07ID:Cv4S4gQH
>>614
MSがSJISやめたら、世の中の既存の文書が
UTF8にでも変わると思ってんの?
魔法ですか?www
2019/09/02(月) 15:56:23.21ID:8MncpZHQ
魔法(圧力)
2019/09/02(月) 16:24:11.77ID:KSSQVEnP
>>623
どこからの?
セブンイレブンとか?
2019/09/02(月) 22:33:53.67ID:8MncpZHQ
マジレスするとOOXMLとかXPSとか「ある程度便利だけど既存の規格で十分じゃない?」というMS独自規格を、
MSが企業に圧力を掛けたりして広めてきた歴史を言ってるんじゃなかろうか。
念の為言っておくとOOXML←OpenDocument、XPS←PDFね。
2019/09/03(火) 00:26:14.39ID:EcUF0HHf
そんな圧力あったかなあ
2019/09/03(火) 06:39:22.40ID:KovswbEV
>>625
所でLinuxもデスクトップ環境も
一つに統一したほうが良いのではないか?ん?
2019/09/03(火) 08:49:15.73ID:/ybqtULG
MSがXPSを作った時、まだPDFは標準規格化されてなかったはずだが
それにPDFの競合規格はXPS以外にもたくさんある

https://ja.wikipedia.org/wiki/Portable_Document_Format#PDF%E3%81%AE%E7%AB%B6%E5%90%88%E8%A6%8F%E6%A0%BC
2019/09/03(火) 10:21:51.94ID:KovswbEV
PDFはアドビのプロプラフォーマットってイメージが抜けないw
630デフォルトの名無しさん
垢版 |
2019/09/03(火) 10:34:53.29ID:gWEsYspA
JavaだってSunのプロプラ言語だぞ
631667
垢版 |
2019/09/03(火) 12:40:23.25ID:JzHlK+VD
今は違うけどね
2019/09/03(火) 15:04:07.63ID:jfAsT/N5
そのうち「MSはUnicodeを潰すためにCP932を作った」とか言い出す奴が出てくる
2019/09/03(火) 15:40:05.81ID:KovswbEV
Windowsの内部でCP932に依存している。
英語版Windowsも含めて日本語文字コードが内部で使われている
って思ってるやつは本当にいる
2019/09/03(火) 16:56:31.60ID:MR8tgZNH
>>627
LinuxはWindowsとは思想がほぼ真逆だからね。
多様性を重んじる。俺はそっちのほうが好きかな。
でもそれを至高とするあまり,古いカーネルや別の派生版との互換性が,Windowsのそれらに比べてない。
2019/09/03(火) 16:58:35.78ID:MR8tgZNH
>>628
当時PDFは国際標準にこそなってなかったが,
オープンフォーマットだったし,様々な場面で使われてた。
ただ描画ソフトがクソ重たいのしかなかった記憶がw
2019/09/03(火) 17:26:28.25ID:KovswbEV
>>634
だから多様性を重んじるっていうのは
競合するフォーマットが複数できるってことで
(例えば画像フォーマットや圧縮フォーマット)
Microsoftが独自フォーマットを作るのと同じ思想なんだよ
2019/09/03(火) 17:35:15.54ID:KovswbEV
>>635
> オープンフォーマットだったし
PDFはオープンではありませんでした。
プロプライエタリだって言ってるだろ
638デフォルトの名無しさん
垢版 |
2019/09/03(火) 19:23:12.90ID:i0SweFPn
>>633
いつの知識なのかw

Windowsは表面的にはSJISで、内部ではUTF-16だ。
2019/09/03(火) 19:25:28.03ID:KovswbEV
> Windowsは表面的にはSJISで
ほらな、SJISじゃないって言ってんのにSJISだっていう
潜在意識レベルでそう思い込んでるから治しようがないw
2019/09/03(火) 19:51:10.42ID:9BNoj6TJ
WindowsというよりWindowsアプリが特定のOEMコードページやANSIコードページに決め打ちして作られてる物があるということだろ
他言語の状況は知らんけど日本語以外でも似たようなものだろうな
2019/09/03(火) 21:04:34.10ID:VgehgunL
Linuxの思想自体は多様性を重んじるのかもしれんが、ユーザーはそれに反して
「UTF-8以外死ね」みたいに言う奴多いよな。
2019/09/03(火) 21:08:34.33ID:KovswbEV
そうはいってもLinuxはASCIIと互換性がない文字コード(例 UTF-32)は死ねだからw
影響範囲が大きすぎて、LinuxはUTF-16とかUTF-32には事実上対応できないんだよね
2019/09/03(火) 21:51:19.99ID:kvsGhJj2
文字集合を符号化するのは、文字の区切れが判断できないからって解釈してんだけどあってる?
2019/09/03(火) 22:15:09.34ID:18+sQUYN
>>634
>多様性を重んじる。俺はそっちのほうが好きかな。

ところでホモにつきまとわれたらどうする?
2019/09/04(水) 01:38:53.56ID:Gs/bLtCt
一橋大学アウティング事件でググれ
2019/09/04(水) 04:00:00.76ID:xGPrnpMI
>>644
ホモであることは否定しないが、ホモは嫌いという俺の感情も尊重していただきたい
これが多様性だ!
2019/09/04(水) 09:16:30.39ID:n47u8TF1
>>645
ホモにつきまとわれて困ると友人にこぼしたら、
性癖を暴露されたとか言われて更に嫌がらせで自殺された事件?
ああいうの見てると、ホモの権利拡大とかしちゃいかんよなって思うよなあ
648デフォルトの名無しさん
垢版 |
2019/09/04(水) 18:11:05.05ID:gX5VYMvu
>>639
Windowsが作るシステムファイルもSJISですよ?
2019/09/04(水) 18:12:22.94ID:vwhL3cv7
>>648
そういうネタはいらんから
650デフォルトの名無しさん
垢版 |
2019/09/04(水) 18:52:19.95ID:gX5VYMvu
>>649
延々と嘘を書くのはやめてもらえませんか?
2019/09/04(水) 19:01:15.19ID:vwhL3cv7
ネタにネタをかぶせてもつまらんで
652デフォルトの名無しさん
垢版 |
2019/09/04(水) 19:24:35.38ID:gX5VYMvu
妄想か
2019/09/04(水) 22:41:17.45ID:n47u8TF1
まあWindowsはNTカーネルとは限らないからな
2019/09/05(木) 00:35:42.74ID:rtvg+Hab
>>653はNTカーネルに限ると完全Unicode対応って意味やで
2019/09/05(木) 00:50:59.59ID:5i/MxHnj
ここでUnicodeといっちゃうあたりの頭の弱さよ
2019/09/05(木) 01:09:51.35ID:rtvg+Hab
補足すると、Unicodeは文字列集合で
符号化方式がUTF-16やUTF-8など
どの符号化方式であってもUnicodeといえる

>>655
さて、何か言い返したい言葉は有るかね?
2019/09/05(木) 01:11:05.81ID:rtvg+Hab
どうせ言い返す言葉は無いだろうから
待ってても時間の無駄なので先に言っておくと
何も言わない or 捨て台詞はくだけ なら俺に喧嘩売らなければいいのにw
2019/09/05(木) 04:37:49.32ID:5ZYYoPpa
完全Unicode対応ならどの符号化方式も対応してなきゃダメだろ
2019/09/05(木) 05:59:20.80ID:rtvg+Hab
※ LinuxはUTF-16、UTF-32に対応していません
2019/09/05(木) 06:00:04.95ID:rtvg+Hab
※ MacもUTF-16、UTF-32に対応していません
2019/09/05(木) 06:48:35.75ID:5ZYYoPpa
他者を貶めたところで>>654が真実になることはない
2019/09/05(木) 06:54:53.66ID:rtvg+Hab
他者を貶めるってなんのこと?
2019/09/05(木) 07:53:38.03ID:5ZYYoPpa
>>662
NTカーネル以外のものは他者だろ
2019/09/05(木) 08:02:45.45ID:rtvg+Hab
じゃあNTカーネルに限ってはUnicodeっていうのは正しいってこと?
2019/09/05(木) 12:58:50.41ID:5R9ffMew
どーしても我流を貫きたいんだなw
まあ他人の人生だから干渉するつもりはないが,そういう生き方は苦労すると思うぞ?
666デフォルトの名無しさん
垢版 |
2019/09/11(水) 17:58:19.49ID:quHYHgkx
FEFF
https://en.wikipedia.org/wiki/FEFF
2019/09/12(木) 12:27:59.62ID:umd/llTn
全然関係ないけどWPへのリンクはMWの短縮URLが使える。
https://w.wiki/8Ew
2019/09/12(木) 12:43:49.99ID:vEKot6kT
本当に短縮したいところは日本語ページのパーセントエンコードされたところだがうまくいかないもんだな
2019/09/13(金) 09:23:49.73ID:rpBkWpcK
日本語のページも短縮URLにできるんだけど,そうじゃなくて?
670デフォルトの名無しさん
垢版 |
2019/09/13(金) 10:11:35.77ID:wKEqF87n
文字通り文字コードのエンコードを間違えてるんだろう
2019/09/13(金) 16:18:49.47ID:nYKvQkSU
[%E5は無効なエンコードです。メインページに戻る。]
2019/09/13(金) 17:19:54.63ID:PF759nqS
当たり前だけど問題ないな
https://w.wiki/8Hy
2019/09/14(土) 00:14:10.89ID:UZ9Fxxpp
これ使われた順に生成されていくの?
そのうち4文字になるんかな
674デフォルトの名無しさん
垢版 |
2019/09/14(土) 00:23:57.48ID:FV8dJ/wR
絵文字などサロゲートペアが必要な領域をUTF-7で表現するとUTF-32よりもバイトサイズが大きくなる。まめな。
675デフォルトの名無しさん
垢版 |
2019/09/14(土) 11:56:27.23ID:mIZ3m5oP
utf-7が使われてる環境とかデータとか出会ったことが無い
2019/09/15(日) 03:21:10.57ID:TEajZO+5
見せたろか
2019/09/15(日) 04:11:30.07ID:LMFjfaUx
見せて!
2019/09/15(日) 04:14:52.61ID:vhYJbDpr
utf7ってasciiじゃないっけ?
2019/09/15(日) 05:00:59.65ID:cvkFPip1
ここにはない
680デフォルトの名無しさん
垢版 |
2019/09/15(日) 10:05:21.58ID:tu3q64lr
>>678
違う

君の理屈だと中国はチベットの一部ということになる
2019/09/16(月) 06:54:09.51ID:vTAkg/qq
じゃ,そういうことじゃん
2019/09/21(土) 16:46:43.93ID:7QW0JGF+
UTF-8もUTF-7も「ASCII互換にしようと思えばできる」文字符号化方式で
UTF-16/32は端から過去互換性を捨ててるっていう理解OK?
683デフォルトの名無しさん
垢版 |
2019/09/21(土) 17:12:22.41ID:icgczTg/
互換の意味判ってるか?
2019/09/21(土) 17:13:19.94ID:AMltcnvP
>>682
ちゃんと仕様読め
2019/09/22(日) 02:18:18.82ID:tTe+mIIa
>>682
意味がわからない
2019/09/22(日) 11:35:45.78ID:LQCFANDg
>>682
OK
2019/09/22(日) 12:48:42.82ID:Uxh+z88Q
684デフォルトの名無しさん2019/09/21(土) 17:13:19.94ID:AMltcnvP
>>682
ちゃんと仕様読め

685デフォルトの名無しさん2019/09/22(日) 02:18:18.82ID:tTe+mIIa
>>682
意味がわからない

686デフォルトの名無しさん2019/09/22(日) 11:35:45.78ID:LQCFANDg
>>682
OK

----
どういうことなの…
2019/09/22(日) 15:28:59.04ID:yDiw/0G9
教訓:5chで情報収集するな
2019/09/22(日) 21:23:59.11ID:rg/me2jP
互換って何なの
690デフォルトの名無しさん
垢版 |
2019/09/22(日) 22:18:40.20ID:sBc79exV
揚げ足取り終了。

質問。皆さんが普段使っている文字コード変換ライブラリでおススメはなんですか。
2019/09/22(日) 23:28:10.21ID:JTFkWMft
お勧めもなにもiconvかICUで大体用は足りる
それで満足しなきゃ自分で作るしかない
2019/09/23(月) 08:58:26.51ID:10n0KRvd
文字コードの変換だけ?
いまどきのまともな言語環境なら変換元のエンコーディングさえ分かってれば標準機能で出来るだろうに
それとも全角⇔半角の変換みたいなのをやりたいってこと?
693デフォルトの名無しさん
垢版 |
2019/09/23(月) 11:35:21.05ID:3qdqqJ07
こっちはだめ
https://ja.cppreference.com/w/cpp/string/multibyte/wcstombs
https://ja.cppreference.com/w/cpp/string/multibyte/mbstowcs

これ使え
https://docs.microsoft.com/ja-jp/cpp/c-runtime-library/reference/mbstowcs-s-mbstowcs-s-l?view=vs-2019
https://docs.microsoft.com/ja-jp/cpp/c-runtime-library/reference/wcstombs-s-wcstombs-s-l?view=vs-2019
694デフォルトの名無しさん
垢版 |
2019/09/23(月) 14:54:10.02ID:FPxFvDjY
Windows SDK付属のデバッグ用ソースを見たところmbstowcs_sの文字コード変換は、Win32APIであるMultiByteToWideCharを使っているようですね。
695デフォルトの名無しさん
垢版 |
2019/09/23(月) 15:08:29.22ID:3qdqqJ07
MultiByteToWideChar / WideCharToMultiByte 最強
2019/09/23(月) 15:53:59.08ID:ZLX7TvLd
>>695
確かに便利でありがたかったです
https://mevius.5ch.net/test/read.cgi/tech/1434079972/53
2019/09/23(月) 16:01:34.44ID:51KZjw6P
null-terminatedとそうでない場合の仕様の違いをちゃんと理解してなくて
バグった挙句によけいな1byte追加しちゃったりした思い出。
698デフォルトの名無しさん
垢版 |
2019/09/23(月) 16:24:42.75ID:3qdqqJ07
奇遇ですね
https://www.vector.co.jp/soft/dl/winnt/net/se472641.html
2019/09/24(火) 00:23:12.23ID:FsJR6FDp
長い上にださい略し方だ…
700デフォルトの名無しさん
垢版 |
2019/09/24(火) 14:25:04.46ID:oiN+60ax
python3でlogging使ってsyslogに出力すると
ASCIIで出力してもなぜか最後に\0が付いてログが残る
鯖側のsyslogdの方で付いてるのかと思ったが
そうじゃなくてpython3が勝手に付けてるみたい
python3のstringがunicode化したときにバグ入ったんかな
python2のときはそんなこと無かった気がする
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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