|
分類:[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 が返るはず)
使い方が間違っているのでしょうか? 他に正しく判断できる方法がありましたら 教えていただけませんでしょうか。
よろしくお願いします。
|