メイン画像

VBScript - 文字列(シフトJIS)のバイト数を取得する

VBScript - 文字列(シフトJIS)のバイト数を取得する


VBScript には、文字列(シフトJIS)のバイト数を取得する関数はない。
自前で準備しなければならない。

と言っても求め方は難しくない。

文字列内の文字単位でバイト数を求めて合計すれば OK 。

文字のバイト数は、 Asc 関数の戻り値と 0xFF00 の論理積を取り、 0 なら 1 バイト、それ以外なら 2 バイトと判断できる。

If (Asc(〈文字〉) And &HFF00) = 0 Then
  ' → 1バイト文字
Else
  ' → 2バイト文字
End If

以下の関数は、シフトJIS文字列のバイト数を返す。

Function GetSJISByteCount(str)

  Dim byteCount
  byteCount = 0

  Dim i
  For i = 0 To Len(str) - 1
    Dim ch
    ch = Mid(str, i + 1, 1)

    If (Asc(ch) And &HFF00) = 0 Then
      byteCount = byteCount + 1
    Else
      byteCount = byteCount + 2
    End If
  Next

  GetSJISByteCount = byteCount

End Function

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事