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

わんくま同盟

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

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


(過去ログ 12 を表示中)
■3522 / )  IsDBCSLeadByte の判断がおかしい?
□投稿者/ dash (1回)-(2007/05/14(Mon) 11:05:32)

分類:[VB.NET (Windows)] 

いつもお世話になっております。

現在VB.net2005環境(WinXP SP2)において、
入力された文字列が全角文字の1バイト目かそうでないかを
判断する処理を作っており、IsDBCSLeadByte で判断しているのですが、
どうも結果が正しくないように見えます。

そこで確認のために以下のような処理を作ってみました。

Dim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis")
Dim bBytes As Byte() = hEncoding.GetBytes("あら")

MsgBox IsDBCSLeadByte(bBytes(0)) ' 文字 "あ" の1バイト目
MsgBox IsDBCSLeadByte(bBytes(1)) ' 文字 "あ" の2バイト目
MsgBox IsDBCSLeadByte(bBytes(2)) ' 文字 "ら" の1バイト目
MsgBox IsDBCSLeadByte(bBytes(3)) ' 文字 "ら" の2バイト目

実行結果として、文字 "ら" の2バイト目でも 1 (2バイト文字の1バイト目) が
返されていました。(2バイト文字の2バイト目なので 0 が返るはず)

使い方が間違っているのでしょうか?
他に正しく判断できる方法がありましたら
教えていただけませんでしょうか。

よろしくお願いします。
返信 編集キー/


管理者用

- Child Tree -