Shift-JISでは、半角文字が1byte、全角文字が2byteと決まっているので、次のようにすると判定できます。
Dim str As String
'
'strに任意の文字を割り当てます。ex) str = "a"
'
Dim sjisEnc As Encoding = Encoding.GetEncoding("Shift_JIS")
Dim count As Integer = sjisEnc.GetByteCount(str)
結果、countが1なら1byte文字(=半角)、2なら2byte文字(=全角)となります。
これを応用すると、任意の文字列に半角が含まれているか?や、その逆を調べることができます。
・「GetByteCount(str)で取得したバイト数」と「str.Length * 2」が一致すれば、文字列はすべて全角
・「GetByteCount(str)で取得したバイト数」と「str.Length」が一致すれば、文字列はすべて半角
・「GetByteCount(str)で取得したバイト数 / 2」で余りが出た場合は、全角・半角混在です。
※注
当ブログのTipsは、@IT等の情報サイトの内容を参考にして構成された記事
もあります。Tipsの内容に著作権等権利を侵害する内容があった場合には、
告知して下さい。早急に訂正または削除にて対応したいと思います。
'
'strに任意の文字を割り当てます。ex) str = "a"
'
Dim sjisEnc As Encoding = Encoding.GetEncoding("Shift_JIS")
Dim count As Integer = sjisEnc.GetByteCount(str)
結果、countが1なら1byte文字(=半角)、2なら2byte文字(=全角)となります。
これを応用すると、任意の文字列に半角が含まれているか?や、その逆を調べることができます。
・「GetByteCount(str)で取得したバイト数」と「str.Length * 2」が一致すれば、文字列はすべて全角
・「GetByteCount(str)で取得したバイト数」と「str.Length」が一致すれば、文字列はすべて半角
・「GetByteCount(str)で取得したバイト数 / 2」で余りが出た場合は、全角・半角混在です。
※注
当ブログのTipsは、@IT等の情報サイトの内容を参考にして構成された記事
もあります。Tipsの内容に著作権等権利を侵害する内容があった場合には、
告知して下さい。早急に訂正または削除にて対応したいと思います。