DelFusa Blog 総本山

プログラミングの話題とかです。

NEW | PAGE-SELECT | NEXT

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --:-- | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

ようやく読めてきた。


         C∧,,∧  ネーサン
   ___    ○ミ゚Д゚,,彡  ジケン デツ
 /◎\……Cミ   ゙゙;,
==============================================


DEKOさんの所にかかれているunicode対応問題についてわかってきました。
※メッセで教えていただいたりもしましたので。

私unicodeについて、ほとんど意識の外だったので
WideString=unicodeで、SJISのようにバイト数可変ではなく
1文字が常に 2byte=16bit だと思いこんでいて
それを画面表示の対応するだけと思いこんでいましたが
それは、Unicodeといえども、UCS-2の話。

問題はもう何段階か複雑でした。


DEKOのアヤシいお部屋。
http://homepage1.nifty.com/ht_deko/

[雑談]が現在、かなり熱いです!



わかってしまえばすっきりします。
DEKOさん貴重でわかりやすい情報ありがとう。

有名なunicodeコントロール、TNT Unicode Controls 配布場所
 Silverpoint Development
 http://club.telepolis.com/silverpointdev/sptbxlib/support.htm#installation
 http://club.telepolis.com/silverpointdev/sptbxlib/TntUnicodeControls.2.3.0.zip

 TNT Unicode Controls | mh-nexus
 http://mh-nexus.de/tntunicodecontrols.htm

このコントロールもサロゲートペアを含まないUTF-16、
つまり、WideString=UCS2Stringでのユニコード対応なのかな?
試していないからわかりませんが、激しくそんな気がする。
Vistaで試せばわかりますな。


DEKOさんのサイト08/03/03の雑談で明らかにされていますが

DelphiIDEの矩形選択が全角文字1に対して
半角文字数3でずれるのかという、例のみんなが知ってる変なバグ。

なんで半角3つかなと、さっぱり理由が理解できなかったのですが、
UTF-8のバイト数の関係でしたのね。驚きです。

CodeGearの中の人はShiftJISの時は上手にやれたのに、
UTF8対応でミスってそのままか~~
次で直るのかなあ。


DelphiIDE自体はUTF-8Stringで実装されているとわかりましたが
新しいStringは、UnicodeString=UTF-16String(サロゲートペアサポート)
となる感じがしますね。

Delphi.NETも同じだからという配慮もあるのでしょう。

ところで、Rubyの松本さんは、UTF-16はお嫌いなようで、結構明白に言ってます。
内容については、納得しまくり。

Matzにっき(2008-01-09)
http://www.rubyist.net/~matz/20080109.html#p01


ですが、Delphiの場合は.NET版と.NET上での動作の所のしがらみで、UTF-16なんでしょうな。


外部に見えるところはUTF-16でもUTF-8でも両対応してもらい
内部的にはUTF-32あたりでもいいんじゃないかと
とても素人的に考えますよ、俺は。

文字列内部が何で表現されていて
1文字が何バイトになるのか、という事を
開発者が意識しなくてよいレベルに早く到達して欲しいですね。

さーーて、これで俺もFT参加の下準備完了です!


DelFusaライブラリの、部分文字列サーチ関数の実装が、そのまま動作したらうれしいな。

ユニコードで勉強でわかりやすいページをリンクしておきます。
UCS-2とUTF-8
http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm




なぜこの時期に「Unicode対応」なのか。
それは、サロゲートペア文字を表示することのできるVistaが登場したから!
それはわかるけど、

必要とされるWideString=UCS-2String対応、
つまり、TNTControlレベルの対応も早めに
DelphiVCLに組み込んでやっておいておいて欲しかったな…


ちなみに、BMPとはビットマップのことではない。
これに気がつかなきゃ、ずっと理解できなかったよ。

DEKOさんのページ読んで、一緒に勉強していきましょー。

        

   ∧,,∧∩  オォー
  ミ,,゚Д゚彡
   ミつ旦.ミ  
 @ミ   ミ   
   ∪''∪
スポンサーサイト

| 未分類 | 23:34 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://delfusa.blog65.fc2.com/tb.php/132-fa6d1706

TRACKBACK

PREV | PAGE-SELECT | NEXT

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。