C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 38 を表示中)
■19914 / )  Re[1]: 文字が全角か半角か判定する方法は?
□投稿者/ シャノン (449回)-(2008/06/02(Mon) 10:36:43)
No19827 (シャノン さん) に返信

そもそもの目的は何かというと、バイナリエディタみたいなもの
(エディタまで行かずにビューワ止まりかもしれない)を作ってみようと思ったわけですよ。
で、よくあるじゃないですか、バイナリデータの隣に文字が表示されるやつが。
例えば、この文字表示のエンコードを UTF-8 としたとき、日本語のテキストを表示すると、
1文字3バイトになるわけですが、それをどうやって表現するかなぁ、と。

"あ" は 0xe3 0x81 0x82 ですよね。で、A, B, C... は 0x41, 0x42, 0x43... ですね。
一般に表示幅は 16 バイトずつですが、仮に一行 6 バイト表示だとして、「ああABCDEF」をダンプすると、

     | +0 +1 +2 +3 +4 +5 | 012345
0000 | e3 81 82 e3 81 82 | ああ
0006 | 41 42 43 44 45 46 | ABCDEF

だと格好がつかないわけで。
やはりここは、適当に詰め物を入れて、

     | +0 +1 +2 +3 +4 +5 | 012345
0000 | e3 81 82 e3 81 82 | あ.あ.
0006 | 41 42 43 44 45 46 | ABCDEF

とかになるのが妥当かなぁ、と。
で、このとき、フォントによっては "あ" の幅が "A" の2倍でないとかっこ悪いよね、と。

返信 編集キー/


管理者用

- Child Tree -