プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
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
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/01/22(月) 22:58:23.45ID:UK/uqEp5597デフォルトの名無しさん
2018/08/05(日) 14:49:57.92ID:SfajzAT9 WinAPIでUTF-16使ってるから廃止は無理でしょ
598デフォルトの名無しさん
2018/08/05(日) 15:00:37.79ID:mhm3uufJ UTF-16は世界中の文字を固定長で表せるようにすることが目標だったから
16bitではそれができないと分かった以上32bitに変えるべき
16bitではそれができないと分かった以上32bitに変えるべき
599デフォルトの名無しさん
2018/08/05(日) 20:42:38.42ID:kXrZdLCy linux64bit版gccは、wchar_tやstd::wstringが既定でutf32だし、徐々に変わっていくでしょう。
600デフォルトの名無しさん
2018/08/06(月) 11:54:02.02ID:wAAey1Ev win32->win64のタイミングで変えとけばよかったのに
601デフォルトの名無しさん
2018/08/06(月) 12:31:26.13ID:jTWGCXc0 もう一生UTF-16なのかな(´;ω;`)
602デフォルトの名無しさん
2018/08/06(月) 15:04:26.69ID:9QlJsUMm603デフォルトの名無しさん
2018/08/06(月) 19:56:04.82ID:RHl3d08a 必要な時にUTF32を使えればいいだけなのでそんなに深刻がらなくても大丈夫でしょ。
604デフォルトの名無しさん
2018/08/06(月) 20:28:33.56ID:JHbMXthk 基本は8で臨時は32で答えが出ているよなあ
日本独自のJIS関係とかもう要らないし
日本独自のJIS関係とかもう要らないし
605デフォルトの名無しさん
2018/08/06(月) 21:09:19.10ID:J3hEGnZ9 そういえば新元号合字ってJIS X 0213とかCP932とかの系統にも入るのかな?
元号合字使ってるとこはUnicodeじゃない古いとこが多そうだからここに入れないと意味半減な気がするけど
元号合字使ってるとこはUnicodeじゃない古いとこが多そうだからここに入れないと意味半減な気がするけど
606デフォルトの名無しさん
2018/08/06(月) 21:18:55.92ID:RHl3d08a 印刷に使うワープロソフトはすべてunicode対応しているから大丈夫。
607デフォルトの名無しさん
2018/08/07(火) 04:59:39.09ID:OlmXtX1U JIS改訂汁
608デフォルトの名無しさん
2018/08/07(火) 17:57:38.63ID:ym2n+lOO 日本語とか東アジア言語はバイト数の面では
UTF8よりUTF16の方が有利になるのだが。
UTF8よりUTF16の方が有利になるのだが。
609デフォルトの名無しさん
2018/08/07(火) 18:02:30.52ID:pTM8y/Ns そうでもない
610デフォルトの名無しさん
2018/08/07(火) 19:58:16.46ID:4kVMfOQG うむ
日本語などの2バイト圏でも8やで
日本語などの2バイト圏でも8やで
611デフォルトの名無しさん
2018/08/07(火) 21:15:40.62ID:FooseUHS お経とかならそうかも
でも普通の日本語の文書はUTF-8で1バイトになる字がわりと使われてるよね
改行もバカにならない
でも普通の日本語の文書はUTF-8で1バイトになる字がわりと使われてるよね
改行もバカにならない
612デフォルトの名無しさん
2018/08/07(火) 21:38:24.37ID:d4J1pA0H 中国語ならUTF-16のほうが有利?
613デフォルトの名無しさん
2018/08/07(火) 23:58:44.52ID:r6gcb8rL エディタとかUTF-32に対応してないのが多いよな。
まあ、無駄が多いからな。最上位の1バイトは必ず0x00になるから。
まあ、無駄が多いからな。最上位の1バイトは必ず0x00になるから。
614デフォルトの名無しさん
2018/08/08(水) 00:28:20.77ID:rL4NvpAX UTF-16は廃止してUTF-20を策定すべき
615デフォルトの名無しさん
2018/08/08(水) 00:34:22.04ID:tqYMmDjs UTF-24じゃないの
616デフォルトの名無しさん
2018/08/08(水) 01:56:39.24ID:00np0Lo5 ランダムアクセスが一番早い文字コードはどれよ
617デフォルトの名無しさん
2018/08/08(水) 02:09:19.94ID:kZ99Qrjg 余ってる場所を余計なことに使う奴が絶対出てきて、
それを根絶するのに凄い辛い思いをするからヤメレ。
それを根絶するのに凄い辛い思いをするからヤメレ。
618デフォルトの名無しさん
2018/08/08(水) 04:24:19.86ID:tqYMmDjs もうこれ人類的に根絶できないんだろうね
一生これなんだろうね
一生これなんだろうね
619デフォルトの名無しさん
2018/08/08(水) 04:37:42.38ID:XhOfYtOw >>615
utf8でいいよ
utf8でいいよ
620デフォルトの名無しさん
2018/08/08(水) 08:35:31.20ID:/x3y+p/o そういえば、utf9というのもあったな。36ビットコンピュータに最適だとか。
621デフォルトの名無しさん
2018/08/08(水) 14:09:08.17ID:QoUOzAqb UTF-7と言う変態も
622デフォルトの名無しさん
2018/08/08(水) 16:40:51.17ID:QemCzjVB Base64
623デフォルトの名無しさん
2018/08/08(水) 18:02:57.82ID:SZpNbR5J UTF-24を策定するべきだな。
全ての文字を24ビット(3バイト)で表す。
UTF-32の0x00で固定な最上位バイトを省くというので。
BMP外の文字だらけの文章には有利になるだろう。
全ての文字を24ビット(3バイト)で表す。
UTF-32の0x00で固定な最上位バイトを省くというので。
BMP外の文字だらけの文章には有利になるだろう。
624デフォルトの名無しさん
2018/08/08(水) 22:53:07.77ID:jNIJWXgx >>623
だな、固定長はUTF-24、可変長はUTF-8でいいだろう
だな、固定長はUTF-24、可変長はUTF-8でいいだろう
625デフォルトの名無しさん
2018/08/08(水) 23:15:02.85ID:oJrY5QK4 UTF16はいらないとかUTF24がよいとか、変な書き込みする人、同一人物?
CPUのレジスタは32bitまたは64bitなので、1バイトをコピーするのも4バイトをコピーするのも時間コストは同じだよ。
CPUのレジスタは32bitまたは64bitなので、1バイトをコピーするのも4バイトをコピーするのも時間コストは同じだよ。
626デフォルトの名無しさん
2018/08/08(水) 23:48:28.49ID:EMFNgHK2 1バイトと4バイトとかミクロの性能比較なんか殆ど意味無い
627デフォルトの名無しさん
2018/08/08(水) 23:49:21.32ID:SCPSjdZ4 固定長だなんて幻想をまだ見てるの?
628デフォルトの名無しさん
2018/08/08(水) 23:50:49.11ID:7IOaw32y 固定長の方が高速で便利ですやん
629デフォルトの名無しさん
2018/08/08(水) 23:57:42.55ID:oJrY5QK4630デフォルトの名無しさん
2018/08/09(木) 01:13:33.46ID:BF3jeRnZ >>626
ファイルサイズがでかくなればそれだけ処理をする回数が増えるからダイレクトに効いてくる。
ファイルサイズがでかくなればそれだけ処理をする回数が増えるからダイレクトに効いてくる。
631デフォルトの名無しさん
2018/08/09(木) 01:20:56.02ID:BtZU6oOJ CPUひとつあたりの処理速度は10年前とあまり変わってないけど、搭載できるメモリの量は劇的に増えた。
内部実装がUTF32になって文字列リソースが2〜4倍になったとしても利用できるメモリはそれ以上に激増しているのでまったく問題なし。
むしろUTF16やUTF32のほうが頭打ちのCPUにも優しい、ということがわかるはず。
内部実装がUTF32になって文字列リソースが2〜4倍になったとしても利用できるメモリはそれ以上に激増しているのでまったく問題なし。
むしろUTF16やUTF32のほうが頭打ちのCPUにも優しい、ということがわかるはず。
632デフォルトの名無しさん
2018/08/09(木) 09:34:00.04ID:Z95VMlij 16は全然優しくない
24もアライメントを考えると優しくない
24もアライメントを考えると優しくない
633デフォルトの名無しさん
2018/08/09(木) 10:29:52.60ID:4BSOUm1q よし128だ。
634デフォルトの名無しさん
2018/08/09(木) 10:44:02.84ID:NXkdt6vr >>625
放っとけば居なくなるのに
放っとけば居なくなるのに
635デフォルトの名無しさん
2018/08/09(木) 11:03:48.44ID:Z95VMlij >>633
合成やセレクタを撤廃できるのなら128でいいよ
合成やセレクタを撤廃できるのなら128でいいよ
636デフォルトの名無しさん
2018/08/09(木) 11:05:58.21ID:OVYf9YNp UNCODEv6
637デフォルトの名無しさん
2018/08/10(金) 22:27:21.22ID:GO9W3NJ8 UTF24とかメモリアクセス効率悪すぎるだろ。アライン考えろ。
情報交換用文字コードはエンディアンに依存しないUTF8。
内部用の文字コードはアクセス効率が良いUTF32。
貧乏人専用のUTF16。
それぞれ存在理由があるんだよ。
情報交換用文字コードはエンディアンに依存しないUTF8。
内部用の文字コードはアクセス効率が良いUTF32。
貧乏人専用のUTF16。
それぞれ存在理由があるんだよ。
638デフォルトの名無しさん
2018/08/10(金) 23:01:06.31ID:d4sNno4d Windowsの場合、プログラムを何も改修することなくUTF16でサロゲートペアの絵文字を使えているでしょ。
もちろん、文字フォントを描画するAPI、つまりマイクロソフトの中の人が頑張っているからだが。
もちろん、文字フォントを描画するAPI、つまりマイクロソフトの中の人が頑張っているからだが。
639デフォルトの名無しさん
2018/08/10(金) 23:24:23.95ID:d4sNno4d まぁ、Windowsプログラムで、動的に絵文字の肌色・髪色・性別などを変えようと思ったら、
UTF16のサロゲート処理を自分で行う必要があるけどね。
UTF16のサロゲート処理を自分で行う必要があるけどね。
640デフォルトの名無しさん
2018/08/11(土) 00:03:26.88ID:Zp5HrM4G >>637
24が駄目なら8はもっと駄目なんでないの?
24が駄目なら8はもっと駄目なんでないの?
641デフォルトの名無しさん
2018/08/11(土) 10:22:26.41ID:/GDyR5Hs だからUTF8は内部利用じゃなくて情報交換用なんだろ。
642デフォルトの名無しさん
2018/08/11(土) 10:45:32.80ID:0HQvSoaX SJISと取り決めてあるテキストデータにUTF8をぶっこんできた取引先があって
翌朝からの日本社会に大混乱を引き起こしかねない危機に晒された経験がある
UTF8滅ぶべしと俺は本気で思っている
翌朝からの日本社会に大混乱を引き起こしかねない危機に晒された経験がある
UTF8滅ぶべしと俺は本気で思っている
643デフォルトの名無しさん
2018/08/11(土) 10:58:00.76ID:kug6FRsz エンコーディングは関係ないだろ。
決めごとを守れないその取引先と異常データを突っ込まれただけで混乱しちゃうプログラムの問題。
決めごとを守れないその取引先と異常データを突っ込まれただけで混乱しちゃうプログラムの問題。
644デフォルトの名無しさん
2018/08/11(土) 11:30:16.03ID:dFDFw6X4 何年か前に、地域の緊急速報のテストメールか何かに
エンコーディングを混在させて文字化けを地域住民に送って混乱させたのあったな
メールテンプレートのエンコーディングと、流し込む本文で混在させちゃったみたいな
エンコーディングを混在させて文字化けを地域住民に送って混乱させたのあったな
メールテンプレートのエンコーディングと、流し込む本文で混在させちゃったみたいな
645デフォルトの名無しさん
2018/08/11(土) 11:51:55.94ID:AWnFhpjF ないしほてし活復を語本日く書に左らか右どけい良もでき書横
646デフォルトの名無しさん
2018/08/11(土) 13:16:33.61ID:uKNQsIii >>644
去年だぞ
去年だぞ
647デフォルトの名無しさん
2018/08/11(土) 15:11:54.76ID:uEbn4tPy 546<<
ケォヴわいくにみ読
ケォヴわいくにみ読
648デフォルトの名無しさん
2018/08/11(土) 15:47:35.74ID:UCIDniLJ 中東の言語は確か右からだったよな
やろうと思えば簡単そう
やろうと思えば簡単そう
649デフォルトの名無しさん
2018/08/11(土) 15:56:48.16ID:A8A80vkf TeXって右から書くのにも対応してるっけ
650デフォルトの名無しさん
2018/08/11(土) 18:33:53.99ID:Yf3CWOMt sjisの〜とcp932の〜の違いって何?
〜を入力して検索すると、sjisのほうはヒットしないんよね
〜を入力して検索すると、sjisのほうはヒットしないんよね
651デフォルトの名無しさん
2018/08/11(土) 19:10:44.45ID:HdyPScyr652デフォルトの名無しさん
2018/08/12(日) 00:02:17.72ID:ZUsL8uZg >649
ArabTeX を使えば出来ます
ArabTeX を使えば出来ます
653デフォルトの名無しさん
2018/08/12(日) 14:13:27.50ID:pjLEMieq Draft Emoji Candidates
http://unicode.org/emoji/future/emoji-candidates.html
http://unicode.org/emoji/future/emoji-candidates.html
654デフォルトの名無しさん
2018/08/12(日) 14:20:12.48ID:JT/5kO4h 絵文字がんがん増えてるけど、ぱっと見で見分けが付かない微妙なの多いよなぁ
655デフォルトの名無しさん
2018/08/12(日) 14:26:24.04ID:rtSL/abo 馬鹿は同じ過ちを繰り返す
656デフォルトの名無しさん
2018/08/12(日) 14:35:29.88ID:x/eO0jlG そのうち洗練されて象形文字になって、やがて漢字に…あれ?
657デフォルトの名無しさん
2018/08/13(月) 14:33:07.24ID:1RU0E1KE この際1byteを32bitか64bitにしたらどうよ
1byteが8bitになったのはアルファベットや数字が固定長で表せて
2^nbitで処理しやすかったからなんだろうけど
1byteが32bitか64bitになればエンディアンの問題もなくなって分かりやすくなる
1byteが8bitになったのはアルファベットや数字が固定長で表せて
2^nbitで処理しやすかったからなんだろうけど
1byteが32bitか64bitになればエンディアンの問題もなくなって分かりやすくなる
658デフォルトの名無しさん
2018/08/13(月) 14:58:06.25ID:obMX332h そうなんか?
16新数で2桁でちょうどいいからだと思ってた
16新数で2桁でちょうどいいからだと思ってた
659デフォルトの名無しさん
2018/08/13(月) 14:59:26.97ID:obMX332h あと 8bit を 1byte というけど
4bit のことをなんていうの?
4bit のことをなんていうの?
660デフォルトの名無しさん
2018/08/13(月) 15:02:02.90ID:L5U4GWSY >>657
8bitや16bitのCPUはどうすんの?
8bitや16bitのCPUはどうすんの?
661デフォルトの名無しさん
2018/08/13(月) 15:15:08.87ID:fDt52YY1662デフォルトの名無しさん
2018/08/13(月) 15:19:57.39ID:mSGjli4I663デフォルトの名無しさん
2018/08/13(月) 16:04:07.52ID:obMX332h Thx!
DNCL
DNCL
664デフォルトの名無しさん
2018/08/14(火) 02:11:13.81ID:uURIoDLa 無理。各コンピュータ内部なら好きなビッド数にすれば良いけど、インターネットのほぼ全ての規格はオクテットが基準になってる。
インターネット全部作り直すくらいやらないと今更変更できない。
インターネット全部作り直すくらいやらないと今更変更できない。
665デフォルトの名無しさん
2018/08/14(火) 09:43:35.42ID:UwXfpacN byteとoctetを区別すればいいだろ
666デフォルトの名無しさん
2018/08/14(火) 12:58:54.95ID:4hamDsGB >>584
昔の ISO/IEC 10646 がそんな感じじゃなかったっけ?
UCS-4 が Four-Octet Canonical Form (4オクテット正規形) と呼ばれてて
UTF-8 や UTF-16 はあくまで Transformation Format だと。
昔の ISO/IEC 10646 がそんな感じじゃなかったっけ?
UCS-4 が Four-Octet Canonical Form (4オクテット正規形) と呼ばれてて
UTF-8 や UTF-16 はあくまで Transformation Format だと。
667デフォルトの名無しさん
2018/08/14(火) 13:43:48.36ID:RlMqh1JW UTF-32に統一できないなら、UTF-8を残そうがUTF-16を残そうが
どちらも大して変わんないんだよね。
UTF-8 も UTF-16 も既存OSの互換性を保つためにあるのだから
UTF-8はANSI互換性というメリットがあるというけれど
なんてことはない、Unix/Linuxの改修が大変だったから、
文字コードのエンコーディング方式自体を作ったってだけの話
互換性のために作ったものだよ
16bitにすべての文字を収めるのは不可能だが、仮に収まったとしたら
UTF-16はサロゲートペアなどなく1文字16bitというシンプルなものになっていた。
もし最初から32bit必要だと認識していれば、UTF-32という1文字32bitに
統一された素晴らしい文字コードになっていただろう
そしてWindowsはそれを標準文字コードとして採用しただろう。
(WindowsがUTF-16なのは、その頃はUnicode = UTF-16の前身のUCS-2 だったから)
結局固定長でないなら、どちらも面倒なことに大差ないし
互換性を保つために面倒な方式を残すのであれば、
それがUTF-8でもUTF-16でも同じこと
どちらも大して変わんないんだよね。
UTF-8 も UTF-16 も既存OSの互換性を保つためにあるのだから
UTF-8はANSI互換性というメリットがあるというけれど
なんてことはない、Unix/Linuxの改修が大変だったから、
文字コードのエンコーディング方式自体を作ったってだけの話
互換性のために作ったものだよ
16bitにすべての文字を収めるのは不可能だが、仮に収まったとしたら
UTF-16はサロゲートペアなどなく1文字16bitというシンプルなものになっていた。
もし最初から32bit必要だと認識していれば、UTF-32という1文字32bitに
統一された素晴らしい文字コードになっていただろう
そしてWindowsはそれを標準文字コードとして採用しただろう。
(WindowsがUTF-16なのは、その頃はUnicode = UTF-16の前身のUCS-2 だったから)
結局固定長でないなら、どちらも面倒なことに大差ないし
互換性を保つために面倒な方式を残すのであれば、
それがUTF-8でもUTF-16でも同じこと
668デフォルトの名無しさん
2018/08/14(火) 14:30:35.75ID:iWXezx4W UTF-8はエンディアンの問題が無いのが良い
669デフォルトの名無しさん
2018/08/14(火) 15:00:48.27ID:YfFk5ERN 8も16も大して変わらないと言えばそうだけど、種類が少ないに越したことはないし
どっちかひとつ残すならやっぱり8なので、16には退場願いたいね
どっちかひとつ残すならやっぱり8なので、16には退場願いたいね
670デフォルトの名無しさん
2018/08/14(火) 15:32:16.19ID:RlMqh1JW >>669
Windowsという重要な役目があるので無理だってわかってるだろ?
Windowsという重要な役目があるので無理だってわかってるだろ?
671デフォルトの名無しさん
2018/08/14(火) 15:39:29.46ID:tR+8FNHO672デフォルトの名無しさん
2018/08/14(火) 15:47:44.20ID:gsqu+3TO >>670
昔からMSは独自文字コードが大好きだからUNICODEからUTF-16が無くなっても問題ない
昔からMSは独自文字コードが大好きだからUNICODEからUTF-16が無くなっても問題ない
673デフォルトの名無しさん
2018/08/14(火) 16:47:25.95ID:RlMqh1JW >>671
> asciiとの互換性とosの改修は関係ない
大あり。C言語はASCII互換前提となっている。
具体的に言うと、文字列の終端文字が\0なので
UTF-16やUTF-32といった、1文字の中に\0が
含まれてる場合に対応できない
UTF-8でなければprintfなどの基本的でよく使われる関数
全てをUnicode対応に改修しなければならなかった。
もしくは捨て去さるかだ
> asciiとの互換性とosの改修は関係ない
大あり。C言語はASCII互換前提となっている。
具体的に言うと、文字列の終端文字が\0なので
UTF-16やUTF-32といった、1文字の中に\0が
含まれてる場合に対応できない
UTF-8でなければprintfなどの基本的でよく使われる関数
全てをUnicode対応に改修しなければならなかった。
もしくは捨て去さるかだ
674デフォルトの名無しさん
2018/08/14(火) 16:48:00.48ID:RlMqh1JW >>672
昔からUnicode対応なんですがーw
昔からUnicode対応なんですがーw
675デフォルトの名無しさん
2018/08/14(火) 16:54:07.60ID:/zOgrF0V UTF-16やUTF-32も1文字の中に\0が含まれているわけじゃないがな。
676デフォルトの名無しさん
2018/08/14(火) 17:16:53.37ID:X3bC8nHW 含まれるやろ
677デフォルトの名無しさん
2018/08/14(火) 17:17:26.99ID:X3bC8nHW L'\0' は含まれないが '\0' は含まれる
678デフォルトの名無しさん
2018/08/14(火) 17:18:41.77ID:RlMqh1JW http://ash.jp/code/unitbl1.htm
41 41 41 41 0041 A
42 42 42 42 0042 B
43 43 43 43 0043 C
44 44 44 44 0044 D
45 45 45 45 0045 E
右から二番目がUTF16の文字コード
見ての通り基本のアルファベットの中に0x00が含まれてる
つまり ABCは、00 41 00 42 00 43 もしくは 41 00 42 00 43 00 という並びとなり
これをprintf等にわたすとASCII文字として1文字8bitと解釈し、
00を\0とみなすので途中で切れるか全く表示されなくなる
41 41 41 41 0041 A
42 42 42 42 0042 B
43 43 43 43 0043 C
44 44 44 44 0044 D
45 45 45 45 0045 E
右から二番目がUTF16の文字コード
見ての通り基本のアルファベットの中に0x00が含まれてる
つまり ABCは、00 41 00 42 00 43 もしくは 41 00 42 00 43 00 という並びとなり
これをprintf等にわたすとASCII文字として1文字8bitと解釈し、
00を\0とみなすので途中で切れるか全く表示されなくなる
679デフォルトの名無しさん
2018/08/14(火) 17:21:01.63ID:RlMqh1JW 説明足らずな>>675が揚げ足取りだと思われると可愛そうなので(笑)
補足してあげると、UTF-16やUTF-32の1文字はそれぞれ16bit or 32bit で
16bitで\0、32bitで\0 は含まれてないと言いたいのだ
だが今は、printfなど1文字8bitと解釈する関数の話をしているので
8bitずつ見ていくと文字の途中に\0が含まれるのだ
補足してあげると、UTF-16やUTF-32の1文字はそれぞれ16bit or 32bit で
16bitで\0、32bitで\0 は含まれてないと言いたいのだ
だが今は、printfなど1文字8bitと解釈する関数の話をしているので
8bitずつ見ていくと文字の途中に\0が含まれるのだ
680デフォルトの名無しさん
2018/08/14(火) 17:37:04.18ID:YfFk5ERN まあWindowsみたいにcharはロケール依存のままでwchar_tだけUnicodeという構成もあるので
UnixのUnicode対応にUTF-8が必須だったかというとわからんけどなー
UnixのUnicode対応にUTF-8が必須だったかというとわからんけどなー
681デフォルトの名無しさん
2018/08/14(火) 19:46:09.12ID:+lmSJTba >>680
え? Unixもwchar_tはUnicodeだけど?
え? Unixもwchar_tはUnicodeだけど?
682デフォルトの名無しさん
2018/08/14(火) 20:25:18.83ID:cWcfj41B 正確には、既存のコードの多くは wchar_t が使われて無くて、
その対応が大変だっていう話
WindowsはOSすべてを自分たちで作ってるからどうにかなったが、
オープンソースで他人が作ったものの寄せ集めだと対応が大変だろうね
その対応が大変だっていう話
WindowsはOSすべてを自分たちで作ってるからどうにかなったが、
オープンソースで他人が作ったものの寄せ集めだと対応が大変だろうね
683デフォルトの名無しさん
2018/08/14(火) 20:38:21.12ID:+lmSJTba gcc は、 wchar_t を16bitと32bitでコンパイル時に選択できるようになっているので、のちのちWindows以上に厄介なことになるでしょう。
684デフォルトの名無しさん
2018/08/14(火) 22:54:07.34ID:YfFk5ERN >>681
Linuxではそうだけど、Unix一般の話でいうとwchar_tはcharの多バイト文字をひとつの値で表せられるならなんでもいいし
実際BSDはcharがSJISならwchar_tはJISコード
Linuxではそうだけど、Unix一般の話でいうとwchar_tはcharの多バイト文字をひとつの値で表せられるならなんでもいいし
実際BSDはcharがSJISならwchar_tはJISコード
685デフォルトの名無しさん
2018/08/15(水) 01:31:39.17ID:URD+Lz/b OSの中とかプログラム言語とかどうでもいい。
インターネットとかの通信プロトコルでオクテット(8bit)単位で交信、終端は0x0A 0x0Dとかの特定のオクテットコード列を使用とかになってるのが多数ある。
内部では好きなビット数で処理すれば良いけど、通信には8bit単位の処理系も必須。
ユニコード使うかどうか以前の問題。
インターネットとかの通信プロトコルでオクテット(8bit)単位で交信、終端は0x0A 0x0Dとかの特定のオクテットコード列を使用とかになってるのが多数ある。
内部では好きなビット数で処理すれば良いけど、通信には8bit単位の処理系も必須。
ユニコード使うかどうか以前の問題。
686デフォルトの名無しさん
2018/08/15(水) 01:44:12.43ID:Vx/KYfiZ ケチケチ言わずIPV6くらいドカンと拡張しようぜ
687デフォルトの名無しさん
2018/08/15(水) 02:10:10.66ID:sxh1cciH wcharは、内部の符号化に依存しちゃいけないし、幅が 16bitか32bitかに依存するのもよくない
使うのがなかなか難しいね
但し、char と混在させるのは単なる誤り。printf に使うと途中で切れるとかいうのは使う側のミス
使うのがなかなか難しいね
但し、char と混在させるのは単なる誤り。printf に使うと途中で切れるとかいうのは使う側のミス
688デフォルトの名無しさん
2018/08/15(水) 05:49:51.06ID:fSWxnCwv wchar_tやったときない
689デフォルトの名無しさん
2018/08/15(水) 11:55:41.55ID:RPpo5aFa690デフォルトの名無しさん
2018/08/15(水) 13:30:59.38ID:/R99sNfj >>687
printfはchar(のポインタ)を受け取るんだから、wchar_tは使えないでしょ?
というかcharで表示できない文字だから、wchar_tが作られたというのが正しい
そうなると、printfだけでなく多くの文字列用関数に対して
charバージョンとwchar_tバージョンが必要になって、変更しなければいけなくなるよね
それが大変だからUnix/LinuxはUTF-16には対応するのは現実的に不可能
対応が簡単なUTF-8を作りました。という流れ。
>>689
> LANG=C.UTF-16みたいなロケールがあったとしての話だろ
Unix/LinuxはUTF-16に対応するの大変だから、
そんなロケールは実現できないだろうね
似たような理由EUC-JPは対応できたけど、SJISは対応できなかった
と思ったけど以下のような警告出るけど使えるのかw
> # localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.SJIS
> キャラクタマップ `SHIFT_JIS' は ASCII 互換ではありません, ロケールは ISO C に従っていません
こんなのまで見つけた
http://www.ossforum.jp/jossfiles/Linux_SJIS_Support.pdf
ダメ文字(文字の一部に\が含まれる場合)にさえ、あたらなければ大丈夫ってことなんかな
UTF-16と違って確率的には低いだろうけど
printfはchar(のポインタ)を受け取るんだから、wchar_tは使えないでしょ?
というかcharで表示できない文字だから、wchar_tが作られたというのが正しい
そうなると、printfだけでなく多くの文字列用関数に対して
charバージョンとwchar_tバージョンが必要になって、変更しなければいけなくなるよね
それが大変だからUnix/LinuxはUTF-16には対応するのは現実的に不可能
対応が簡単なUTF-8を作りました。という流れ。
>>689
> LANG=C.UTF-16みたいなロケールがあったとしての話だろ
Unix/LinuxはUTF-16に対応するの大変だから、
そんなロケールは実現できないだろうね
似たような理由EUC-JPは対応できたけど、SJISは対応できなかった
と思ったけど以下のような警告出るけど使えるのかw
> # localedef -f SHIFT_JIS -i ja_JP /usr/lib/locale/ja_JP.SJIS
> キャラクタマップ `SHIFT_JIS' は ASCII 互換ではありません, ロケールは ISO C に従っていません
こんなのまで見つけた
http://www.ossforum.jp/jossfiles/Linux_SJIS_Support.pdf
ダメ文字(文字の一部に\が含まれる場合)にさえ、あたらなければ大丈夫ってことなんかな
UTF-16と違って確率的には低いだろうけど
691デフォルトの名無しさん
2018/08/15(水) 15:55:17.05ID:fksu3zh2 >>662
シュメール文明の神アヌンナキたちの故郷の惑星のことかと思った
シュメール文明の神アヌンナキたちの故郷の惑星のことかと思った
692デフォルトの名無しさん
2018/08/15(水) 16:15:54.08ID:Y4UT7naw 乳首の甘噛み
693デフォルトの名無しさん
2018/08/15(水) 16:25:48.18ID:fSWxnCwv694デフォルトの名無しさん
2018/08/15(水) 16:43:22.85ID:BHOopni+ >>693
だからダメ文字だって
http://ash.jp/code/code.htm
> また、2バイト文字の中に"\"(0x5C)を含むデータが存在するため、文字列がメタ処理されてしまい、文字化けする可能性があります。
LinuxやUnixに限った話ではないけど、
文字を1バイトずつ処理するようなもの(つまりcharポインタ)は
ASCIIと互換性がないと不具合の原因になる
だからSJISやUTF-16やUTF-32はLinuxやUnixで
ネイティブに処理するのは苦手なんだ
だからダメ文字だって
http://ash.jp/code/code.htm
> また、2バイト文字の中に"\"(0x5C)を含むデータが存在するため、文字列がメタ処理されてしまい、文字化けする可能性があります。
LinuxやUnixに限った話ではないけど、
文字を1バイトずつ処理するようなもの(つまりcharポインタ)は
ASCIIと互換性がないと不具合の原因になる
だからSJISやUTF-16やUTF-32はLinuxやUnixで
ネイティブに処理するのは苦手なんだ
695デフォルトの名無しさん
2018/08/15(水) 17:20:00.89ID:/SQznhgr 中途半端な多encoding対応で不具合が出たという話。要はバグ。
696デフォルトの名無しさん
2018/08/15(水) 22:23:06.07ID:URD+Lz/b アホか、アホしか居ないか?
それともわざとボケてんのか?
なんで wchar_t の話と printf の話を一緒に語ってるんだ?
wprintf 🤔
それともわざとボケてんのか?
なんで wchar_t の話と printf の話を一緒に語ってるんだ?
wprintf 🤔
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【カブス】今永昇太 1年約34億円で残留へ QO受諾 米メディア報じる [鉄チーズ烏★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 「COP30」開催地を軽蔑? ドイツ首相発言に批判 [蚤の市★]
- 【悲報】高市有事で日本に同調する国、1つも現れないwwwwwwwwwwwwwww [603416639]
- 【雑談】暇人集会所part19
- 自閉症が「んなっしょい」と連呼するお🏡
- 【悲報】女の子、整形で片目失明...高市助けて... [856698234]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
