tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルバイト数のカウントについて
記事No349
投稿日: 2003/08/07(Thu) 19:29
投稿者ようこ
[OSのVer]:Windows2000    [VBのVer]:VB.NET
すみません困ってます。
全角文字を2文字(2バイト)としてカウントする方法ないでしょうか?
LENBは使えないみたいです。あと固定長も使えないみたいです。
LENはつかえるのですが、全角文字を1文字認識してしまいます。  

[ツリー表示へ]
タイトルRe: バイト数のカウントについて
記事No351
投稿日: 2003/08/08(Fri) 01:40
投稿者魔界の仮面弁士
> 全角文字を2文字(2バイト)としてカウントする方法ないでしょうか?
例えば、
  Dim S As String = "ようこ/Youko"
  Dim n As Integer = System.Text.Encoding.Default.GetByteCount(S)
のような感じでいかがでしょうか。


> LENはつかえるのですが、全角文字を1文字認識してしまいます。
VB.NETの文字列は、内部的には全てUnicode(UTF-16)で表現されます。
(一部、UTF-8のUnicodeが使われる場合もありますが)

ですから、先に System.Text.Encodingクラスを使って、それらを
任意の文字コード(たとえばShift_JIS)に変換してからでないと、
正しいバイト数を換算する事はできません。

[ツリー表示へ]
タイトルRe^2: バイト数のカウントについて
記事No352
投稿日: 2003/08/08(Fri) 09:29
投稿者ようこ
[OSのVer]:Windows    [VBのVer]:VB.NET  
> > 全角文字を2文字(2バイト)としてカウントする方法ないでしょうか?
> 例えば、
>   Dim S As String = "ようこ/Youko"
>   Dim n As Integer = System.Text.Encoding.Default.GetByteCount(S)
> のような感じでいかがでしょうか。
>
>
> > LENはつかえるのですが、全角文字を1文字認識してしまいます。
> VB.NETの文字列は、内部的には全てUnicode(UTF-16)で表現されます。
> (一部、UTF-8のUnicodeが使われる場合もありますが)
>
> ですから、先に System.Text.Encodingクラスを使って、それらを
> 任意の文字コード(たとえばShift_JIS)に変換してからでないと、
> 正しいバイト数を換算する事はできません。
実現できました。
ありがとうございました。

[ツリー表示へ]