[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 13:54 / Filesize : 116 KB / Number-of Response : 591
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

UnicodeとUTF-8の違いは?



1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:02:37 ]
ビッグインディアンとかなんとかかんとか

2 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:04:11 ]
戦力の決定的差ではない

3 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:05:48 ]
また、頭の悪そうなスレが・・・

>>1
それは魚とマグロの違いを訊ねるようなもんだ。

4 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:06:49 ]
魚と鮪というよりは、魚と刺身の違いのような気がする。

5 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:09:31 ]
俺もわからん。
誰か詳しく説明してよ。

6 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:11:24 ]
>>5
UNICODE→魚
UTF-8→刺身

7 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:14:40 ]
Unicodeは文字の集合で、UTF-8はそれに(語弊があるが)番号を振る方法の1つ。


8 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:15:39 ]
UNICODE
- 文字集合:1種類
- 符号化方式:UTF-8, UTF-16BE, etc

9 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:19:17 ]
小学生でもわかるように!

10 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:28:13 ]
Unicode => クラスメート
UTF-8 => 身長順に並べー、名前の順に並べー、誕生日の順に並べー




11 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:30:48 ]
自分はUCSとの違いがわからん

12 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:32:18 ]
2chの絵文字の#1234とかがUTF-8なのか?

13 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:32:39 ]
Unicode:
コードポイント: JISの句点コード
UTF-7, UTF-8, UTF-16, UTF-32: Shift_JIS, ISO-2022-JP, EUC-jp

Unicode ⊃ UTF-8

14 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:32:52 ]
unicode => 国民
UTF-8 => 住基コード


15 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:42:09 ]
Unicode = { 'a', 'b', ... }
UTF8 = { utf8encode('a'), utf8encode('b'), ... }

16 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:42:47 ]
UNICODE: JIS
UTF-8: SJIS or UJIS

かな?

17 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:44:05 ]
JISてーと、ISO-2022-JPエンコーディングのことを指すのかJIS X 0201とか08
とかを指すのかはっきりしないが、後者ならそんな感じ。


18 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:44:56 ]
あるいは
UNICODE: DivX or XviD or WMV9
UTF-8: AVI or MKV or OGM or ASF

19 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:51:13 ]
>>1
そもそもUTF-16やUTF-32と違って
バイトストリームのUTF-8にはエンディアン問題はない
UTF-8のBOMはエンディアン対策ではない

>>11
UnicodeとUCSは同義といってもいいのでは

20 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:53:30 ]
UNICODEって文字セットのことなのか、
文字セット+符号化方式たち のことなのかどっち?



21 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:57:06 ]
文字それぞれにも番号は振られているが、これは日本語の文字でいうと
区点コードみたいなもんだな。


22 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:00:55 ]
UTF-8とかってのは一種の圧縮方式みたいなものだよね
前cjk漢字統合で叩かれてたのはUNICODE自体の問題?
それとも非可逆圧縮への批判?


23 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:13:09 ]
なんという他力本願なスレ・・・

24 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:14:46 ]
ていうか、こんだけグチャグチャ言われたらわかるもんも
わからんようになるだろ、普通w

25 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:18:58 ]
>22
UnicodeがCJK漢字を統合するという
非可逆圧縮を選択したことへの批判だったと記憶している。

26 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:26:07 ]
.NET2.0には文字コードを自動判別する機能があるかどうかどうなんだ

27 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:29:11 ]
文字コードスレで聞けよ・・・

28 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:32:55 ]
>>22
>UTF-8とかってのは一種の圧縮方式みたいなものだよね

全然違うから。

29 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 21:36:55 ]
>>11
UnicodeはUCS-4のサブセットであり、UCS-2のスーパーセット

30 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 00:35:17 ]
UNICODEには基盤になる文字集合が一つあって、
その文字コードを固定長で(そのまま)使うのがUCS、
可変長で(圧縮して)使うのがUTFだと思ってた俺。

しかし>>28によって否定されてしまった。
調べてもなぜ間違ってるのか分からん。



31 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 00:46:56 ]
>>30
可変長と圧縮を混同するな。

32 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 00:55:36 ]
>>31
そりゃ確かに俺らからすれば圧縮とは言えないね。
でもわざわざ可変長にする理由は第一に互換性、第二にサイズぐらいしかない気がする
とりあえず大筋では合ってたようなのでよかった。サンクス

33 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 05:53:08 ]
UTF-16LEを指してUnicodeと連呼しているSDKドキュメントが存在するんだが、
あいつらの傲慢さは何とかならんのか?

34 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 07:31:56 ]
UTFのUとは何か

35 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 08:12:07 ]
さいたまてれびがうつらないのですが・・・

36 名前:デフォルトの名無しさん [2007/05/01(火) 08:18:43 ]
なぁ、ちょっとおしえてくんねーか?
なんでutf8の「ももんが」って文字列を
PerlのJCodeでutf8に変換しようとすると文字化けしちゃうんだ?

37 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 09:03:46 ]
ももんが!!

38 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 09:12:48 ]
>>36
utf8からutf8だと、変換してないじゃないか。

39 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:00:45 ]
Unicode: Unicode Consociumの制定した文字集合。(U+0 - U+1FFFFF)
UTF-8/16/32: Unicode Transformation Format。Unicodeの符号化方式。
 UTF-8: 外字が無いため4Byte長まで。
 UTF-16: UCS-2+サロゲートペア+バイナリ符号化。

ISO/IEC 10646: 国際文字集合規格(群、面、区、点)。制定前にUnicodeが出て来たためそのコンパチに。Unicodeの文字はこのうち0群16面まで。
UCS-4: ISO規格の31bit符号集合。規格化文字集合+外字。
UCS-2: ISO規格の16bit符号集合。基本多言語面のみ。(例:U+1234)
UTF-8/16/32: UCS Transformation Format。UCSのバイナリ符号化方式。(例:0x12 0x34)
 UTF-8: Unicodeの方と違い6Byte長まであり。

40 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 10:19:34 ]
メモ帳でテキストを保存するときに
UnicodeやUTF-8を指定できるが、
Unicodeで保存する
としたときは
UTF-8で保存したのかUTF-16で保存したのか
わたしたちにはわからなくないか?



41 名前:デフォルトの名無しさん [2007/05/01(火) 10:22:47 ]
コンソールのfileコマンドでわかるだろ!(:D)| ̄|_

42 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 12:07:35 ]
>>40
Microsoft Windows では "Unicode" といえば UTF-16 のリトルエンディアンという暗黙の了解になっている。

43 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 12:13:22 ]
>>33
csUnicodeっていうISO-10646-UCS-2のIANA別名があって、
こいつはUTF-16コンパチだから、あながち間違いとはいえない。

44 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 16:02:40 ]
Visual Studio.NETのSystem.IOでテキストをつくったらとくにコード指定なしのときはUTFいくつなんだ?

45 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 16:21:05 ]
windowsの標準

46 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:07:42 ]
UTF-8
MSDNに書いてある。

47 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:36:36 ]
ISO-2022でいいじゃんね

48 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:49:18 ]
VB.NETでも結局はBASP21を使わないと文字コード半別できんのか?

49 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:01:26 ]
mlangつかやいいじゃん

50 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:25:37 ]
文字コードのことがイマイチよくわからん・・・・
頭こんがらがり



51 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:48:26 ]
文字コードもOSI参照モデルみたいな階層構造の概念が必要だと思うんだよな
↓みたいな感じで

表示字形(グリフ、フォント)
文字入力(物理デバイス、IME)
符号化方式
文字集合
自然言語

52 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:41:11 ]
とりあえず、M$はUTF-16をUnicodeと呼ぶのを自重すべきだな。
まるでUTF-16だけがUnicodeとしたいようだ。
SJIS(MS漢字コード)を日本語テキストの標準にしたいかのように。

53 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:50:46 ]
自然言語ってのは普段使ってる言葉な
そこで使われてる文字を集めたのが文字集合ってヤツ

英語だとラテン文字a-z,A-Zと数字、記号なんかが文字集合になるわけ
日本語だと異体字なんかの問題があって集合を作るのが難しいんだけど
(土吉/士吉とか、はしご高/くち高みたいな)
とりあえず作って使われてるのがJIS X 0208文字集合ってヤツ
いわゆるJIS第1水準、第2水準漢字ね

54 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:53:30 ]
他の国でも独自に文字集合を作ってて
それらをまとめてひとつの大きな文字集合に
しちゃおうってのがUnicodeの考え方なの

ここでいうUnicodeはUCS(Universal Character Set)と
同じと思ってもらっていい

55 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 19:58:06 ]
その文字集合を実際にコンピュータ上のゼロイチで
対応させる方法のことを符号化方式っていうの

JIS X 0208文字集合を符号化する主な方法として
EUC-JP、ShiftJIS、ISO-2022-JP(JIS)
っていう3つがあって文字化けとかの問題が出てくるんだけどね

56 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:07:29 ]
ASCIIなんかだと文字集合と符号化方式が明確に区別されてなくて
規格として「この文字はこのゼロイチの組合せ」ってのが決められてたりして
そこらへんが文字集合と符号化方式を混乱する一因ではあるんだけど

UTF-8ってのはUCSを符号化する方法のひとつっていうだけ
それ以上でもそれ以下でもない

じゃあ、何が混乱の元かっていうと
Unicodeって言葉がUCS(文字集合)だけを指す場合と
符号化方式まで含めて使われる場合があるのだな
区別が付いてる人はいいんだけど、区別が付いてない人が
書いたり読んだりしてるとエスパー助けて状態にw

57 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:14:21 ]
UCSという規格の存在を知らず、
UCSという言葉を単にUCS-2やUCS-4などといった符号化形式の
総称としか思っていない奴いるだろ。

58 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:32:56 ]
なるへそ。
そういうことか。

Unicodeが単に世界中の文字を集めたもので、その1文字1文字にゼロとイチ
の組み合わせ対応させたものが、UTF-8と。

なんかちょっとわかったよ。

59 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:43:00 ]
ASP.NETのWebconfigファイルはUTF-8なんだからできればなにもかもUTF-8で統一してもらいたいんだが。
アラビア語とかを考えてUTF-16とかにする必要があるんだろうか


60 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 20:58:23 ]
Unicodeが16ビット固定長だった頃に書かれたソフトウェアを使うためということが
UTF-16の最大の存在理由だと思う。

個人的には大半の仮名漢字が2オクテットで収まるUTF-16はそんなに嫌いでない。
ASCIIの文字が2バイトになることと、プログラムで扱うときに
サロゲートペアを考慮しなければならないこと、は悩ましいけど。



61 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:19:18 ]
どうせ互換性なくなるならASCIIの制御文字から設計し直せばいいのにな

62 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:29:40 ]
このスレは文字コードスレの内容がサッパリわからない
アフォの俺には非常に助かる

63 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:40:58 ]
なるほど。すごく良く分かった。
エロい人に感謝。

64 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:51:36 ]
それじゃぁ、このスレは目的を果たしたということで埋め?

65 名前:デフォルトの名無しさん [2007/05/01(火) 21:52:18 ]
日本で使うコードポイントはどの辺でしょうか?
www.ssec.wisc.edu/~tomw/java/unicode.html

66 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:54:29 ]
ブラウザの実装も大変みたいだね
openmya.hacker.jp/hasegawa/public/20061209/momiji.html

67 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:58:43 ]
>>39
UTFって、2種類あるんだ。Windowsのはどっちなんだろ?
というかそもそも、UCS-?とUTF-?の違いが良く分からんが。

68 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 21:59:22 ]
Basic LatinがASCIIの範囲。
CJKなんたらと付くところが漢字関連。
あとHiragana、Katakanaは当然だな。
Halfwidth and Fullwidth Formsが半角カタカナや全角アルファベット。

漏れがあるかも知れないがだいたいこんなとこだろう。

将来的にはHigh/Low Surrogatesに入る文字もあるのかな。(もう入ってる?)


69 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:13:17 ]
UCS-2⊂UCS-4⊂世界の文字
UTF-8∈( UCS-2→バイト列(1〜4?バイト) )
UTF-16∈( (UCS-2→バイト列(2バイト) ∩ (UCS-4-UCS-2→バイト列(4バイト)) )

こうかな…?

70 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:22:38 ]
UCSは集合でUTFは関数
集合の元に関数を適用するとゼロイチが出てくる



71 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:30:20 ]
>>65
国を意識しないで使えるのがUnicodeのメリットで
全ての国で全てのコードポイントが使える

そもそも日本語だけを使いたいのであれば
Unicodeを使う意味がない
理想論だけど

72 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:30:37 ]
で、実践的に、ネットからダウンロードしたのをUTF-8で保存するとして
ネットのドキュメントのいろいろな文字コードを知るにはどうするんだ?

73 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:36:53 ]
(1)ソース表示→charset=???の部分で判断
(2)いろんなエンコードで開いてみて読めたのが正解

74 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:37:06 ]
>>71
>Unicodeを使う意味がない

2バイトコードの問題から開放されるだけでもすごく意味があるぞ。

75 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:44:55 ]
>>67
Unicodeコンソーシアムが作った文字集合がUnicode。
ISO 10646で定義された文字集合がUCS。
両者は、互換になるように働きかけあっているので、今のところ同じ文字集合と見なして問題ない。

一時期はUnicodeを符号化するのがUTF-?、UCSを符号化するのがUCS-?だったと俺は思うが、
今はISO 10646にUTF-8/16も収録されているらしい。
UTF-8/16の正式名称はUnicodeとUTFで違うが、実際の符号化の方法は同じで、
基の文字集合も上に書いたとおり同じだからどちらのUTF-8/16も実用上基本的に違いはない。

76 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:48:04 ]
UCS-4は、32ビット固定長の内31ビット使用し、UCSの全ての文字を符号化できる。
UCS-2は、16ビット固定長(16ビット使用)で、UCSのうち、BMP(基本多言語面)だけしか符号化できない。
UTF-32は、32ビット固定長の内21ビット使用し、Unicodeの全ての文字を符号化できる。
UTF-16は、16ビット/32ビット(サロゲートペア)の可変長で、Unicodeの全ての文字を符号化できる。
UnicodeのUTF-8は、8ビット単位、1-4オクテットの可変長で、Unicodeの全ての文字を符号化できる。
UCSのUTF-8は、8ビット単位、1-6オクテットの可変長で、UCSの全ての文字を符号化できる。

Unicodeは、UTF-16で全ての文字を符号化できることを念頭においているが、
UCSは、UCS-4で全ての文字を符号化できることを念頭においている。

77 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:48:19 ]
>>74
Unicodeでも多バイト問題は付いて回るし
EUC-JPとかISO-2022-JPでいいんじゃね?

78 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:52:58 ]
>>69
これくらいすっきりさせろ
UCS-4 = UCSのUTF-8
UTF-32 = UTF-16 = UnicodeのUTF-8
UCS-2 ⊆ UTF-32 ⊆ UCS-4
(そもそもUnicode ⊆ UCS)

79 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 22:54:52 ]
ISO-2022-JPはステートフルなので扱うのが大変。
UTF-8はEUC-JPより多くの文字が扱える。
Shift_JISはYENとかで困るから除外。
XMLのデフォルトエンコーディングはUTF-8。


80 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:05:23 ]
JISX0213(ニアリイコールVistaの文字セット)でサロゲートペアって
ハマりそうだよな。

string s="○";
assert( s.length==1 );

これが成り立たない場合があるっていうのも詐欺みたいな。



81 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:08:04 ]
1区当たり94点しか使わないASCII絶対主義が狂ってると思う
コードポイントの5/7が使われないのはもったいなすぎ

82 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:17:25 ]
>>76
なるほど・・・だいぶ間違ってたなぁ。こうなるのかな?
BMP(16bit)⊂Unicode(21bit)⊂UCS(31bit)⊂世界の文字
UCS-4∈( UCS→(32bit) )
UCS-2∈( BMP→(16bit) )
(UCS)UTF-8∈( UCS→(8〜48bit) )
(Unicode)UTF-8∈( Unicode→(8〜32bit) )
UTF-16∈( BMP→(16bit) ∩ Unicode-BMP→(32bit) )
UTF-32∈( Unicode→(32bit) )

>>78
俺はずっと文字集合とエンコーディングがごっちゃになってたから
あんまり省略すると不安だったもんで

83 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:18:50 ]
>>80
「が」とかなら判るけど、○も文字的に2文字になるケースってあるの?
サロゲートペアだから2だとかでは、バイト長だから4という思想から
変わってないような。文字としてなら1以外ありえないと思うので、
そのassertが不成立ならstringクラスのバグ(か、lengthのバグ仕様)なんでは?


84 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 23:24:41 ]
任意の文字って意味じゃね>"○"

85 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:10:36 ]
あ゛、なるほど。でも任意の文字っていっても実装依存で
なるわけじゃなくて、そうなってもおかしくない文字(合字とか)で
なるだけじゃないの?言語的な文字数ではなくて内部的に確保した
記憶スロットの数を返すようなlengthはいくらなんでもバグだろう。

86 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 00:33:38 ]
>>83
いや、サロゲートペアだから2になるんだわ。
とりあえず.NETはそうなる。

msdn2.microsoft.com/ja-jp/library/system.string.length(VS.80).aspx
> Length プロパティは、このインスタンス内の Char オブジェクトの数を返します。Unicode 文字の数ではありません。

Javaもそうなるみたいだけど。

Java
java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html#length()
> この文字列の長さを返します。長さは文字列内の 16 ビット Unicode 文字の数に等しくなります。

JavaScriptも多分?

87 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 01:48:47 ]
>>86
げーっ、そうなんだ。
「16ビットUnicode文字」の数なんて何の意味もないのにな。
「言語的な文字」の数かどうかだけが問題で、それ以外は
バイト数を返すのと同じこと(=同じ問題を抱える)なのに。

88 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 02:08:02 ]
しかし、実際サロゲートペアの
文字なんかほとんど使われないわけで。

それなのにそれを考慮して処理速度を大幅に落とす方が俺は困る。

89 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 02:09:58 ]
Javaは仕様としてサロゲートペアを
そもそもサポートしないと決められてるはず。

90 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 03:25:03 ]
>>89
最近のJavaはちょっとサポートしている。
String.codePointCount() とか、Character.codePoint*() とか。





91 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 05:56:27 ]
>>87
プログラム組む人は、バイト数が欲しい
(書面の)文を書く人は、文字数が欲しい


strcatとかの標準関数が全滅するUTF-16なんて誰が考えたんだろな?
しかも、MSは標準にするし…

92 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 09:06:46 ]
意味的にはもちろん文字数を返すのが理想なんだけど・・・
そもそもJavaなんて、stringクラス作った時はサロゲートペアなんて無い時代じゃないの

93 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 09:23:29 ]
>>68
有り難う御座います、結構飛びますね
>>71
ゲームで使うライブラリが使うコードポイントを指定して
テクスチャに書くので決める必要があるからです
海外のフォントが使えなきゃ線画ができませんし

94 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:05:19 ]
>>91
バイト数を気にしてた頃はJIS X 0201カナも普通に使われてたから
SJISなんつー中途半端なモンが重宝されてたんだよな

95 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:35:00 ]
>>87
.NETの場合、文字数はSystem.Globalization.StringInfo.LengthInTextElementで得られる。
ほかにもStringInfoには、サロゲートペアを考慮して文字単位で操作するメソッドがいくつかある。

>>91
C89の時点で既にwchar_tはあった。
wcscpyなどの関数が入ったのはC95だった気がするが。

そのwchar_tは、今のWindowsだとUTF-16だが、
そもそもwchar_tことC/C++のワイド文字は固定長で処理することを志向していたはずで、
本来のwchar_tの意義からすればUTF-16は良くない罠。

もしもUnicodeが初めから32ビットになっていれば、と思う。

96 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:37:02 ]
やべえええ
話についていけない
というか、文字コードの変換は出来るけど 実際の詳しい部分知らない俺はヘタレ・・・

97 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:44:11 ]
16bitで足りないのはすぐに判ったろうけど、似た文字はまとめちゃえば入るだろと思ったんだろな
でも、それじゃ納得しない人が出てくるのは当然。

24bitあれば足りたろうから24bitで定義しておけば最善だったかもな

それにしても \ の扱いが醜い

98 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 10:54:06 ]
7bitで足りてた人間が考え始めたコトだからw

JIS X 0201のGRはISO646ではあるけどASCIIではないからね
バイナリ的に区別付かないからフォント変えれば同じだけど

ASCIIにスラッシュとバックスラッシュが採用されたのは
当時のプログラム言語で使われてた論理記号の∧と∨を表すためらしい

99 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:11:56 ]
歴史的な経緯はこのページが参考になる
ttp://www.horagai.com/www/moji/code4.htm


100 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 11:18:53 ]
んじゃ、文字数とかバイト数とかのお話の説明なぞ

UTF-16っていうので16bitで全部の文字を表そうと思ってたのね
でも実際に作り始めたら16bitじゃ全然足りなかったから
その分は16bitをふたつ使って32bitで表しますよっていうコトにしたの
それがサロゲートペアって呼ばれてるモノね(ふたつ組だからペア)

そんなわけで、UTF-16は基本的に16bitで一文字なんだけど
例外的にサロゲートペアだけ32bitで一文字っていう
ヘンテコリンな規格になっちゃったわけ

サロゲートペアの処理がちゃんとされてないプログラムだと
16bitなら一文字、32bitなら二文字っていう風に
機械的に文字数を判断しちゃって困るねっていうこと








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<116KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef