[過去ログ] 文字コード総合スレ Part11 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
667
(1): デフォルトの名無しさん [sage] 2018/08/14(火) 13:43:48.36 ID:RlMqh1JW(1/6) AAS
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でも同じこと
670
(1): デフォルトの名無しさん [sage] 2018/08/14(火) 15:32:16.19 ID:RlMqh1JW(2/6) AAS
>>669
669(1): デフォルトの名無しさん [sage] 2018/08/14(火) 15:00:48.27 ID:YfFk5ERN(1/3) AAS
8も16も大して変わらないと言えばそうだけど、種類が少ないに越したことはないし
どっちかひとつ残すならやっぱり8なので、16には退場願いたいね
Windowsという重要な役目があるので無理だってわかってるだろ?
673: デフォルトの名無しさん [sage] 2018/08/14(火) 16:47:25.95 ID:RlMqh1JW(3/6) AAS
>>671
671(1): デフォルトの名無しさん [sage] 2018/08/14(火) 15:39:29.46 ID:tR+8FNHO(1) AAS
>>667
妄想は要らん
asciiとの互換性とosの改修は関係ない
16bitに収まったとしたらとか ifを言い出したらきりがない
> asciiとの互換性とosの改修は関係ない

大あり。C言語はASCII互換前提となっている。
具体的に言うと、文字列の終端文字が\0なので
UTF-16やUTF-32といった、1文字の中に\0が
含まれてる場合に対応できない

UTF-8でなければprintfなどの基本的でよく使われる関数
全てをUnicode対応に改修しなければならなかった。
もしくは捨て去さるかだ
674: デフォルトの名無しさん [sage] 2018/08/14(火) 16:48:00.48 ID:RlMqh1JW(4/6) AAS
>>672
672(1): デフォルトの名無しさん [sage] 2018/08/14(火) 15:47:44.20 ID:gsqu+3TO(1) AAS
>>670
昔からMSは独自文字コードが大好きだからUNICODEからUTF-16が無くなっても問題ない
昔からUnicode対応なんですがーw
678: デフォルトの名無しさん [sage] 2018/08/14(火) 17:18:41.77 ID:RlMqh1JW(5/6) AAS
外部リンク[htm]:ash.jp

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: デフォルトの名無しさん [sage] 2018/08/14(火) 17:21:01.63 ID:RlMqh1JW(6/6) AAS
説明足らずな>>675
675(1): デフォルトの名無しさん [sage] 2018/08/14(火) 16:54:07.60 ID:/zOgrF0V(1) AAS
UTF-16やUTF-32も1文字の中に\0が含まれているわけじゃないがな。
が揚げ足取りだと思われると可愛そうなので(笑)
補足してあげると、UTF-16やUTF-32の1文字はそれぞれ16bit or 32bit で
16bitで\0、32bitで\0 は含まれてないと言いたいのだ

だが今は、printfなど1文字8bitと解釈する関数の話をしているので
8bitずつ見ていくと文字の途中に\0が含まれるのだ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s