VBScript でシフト JIS の文字列のバイト数を数える (unibon)

1999年09月14日: 新規作成。
VBScript でシフト JIS の文字列のバイト数を数えます。
VBScript には Len 関数や LenB 関数がありますが、これらはいずれも Unicode を基準として数えますので、文字列をシフト JIS で考えた場合のバイト数を求めることはできません。ちなみに、シフト JIS の文字列をバイト数で知りたい場面としては、DBMS に文字列を格納する際に、DB のスキーマ定義としては文字列長がシフト JIS におけるバイと数として定義している場合などがあります。

使用例:
Dim s
s = "abcあい"
Call MsgBox("MyLen = " & MyLen(s))

Function MyLen(ByVal a)
    Dim c
    c = 0
    Dim i
    For i = 0 To Len(a) - 1
        Dim k
        k = Mid(a, i + 1, 1)
        If (Asc(k) And &HFF00) = 0 Then
            c = c + 1
        Else
            c = c + 2
        End If
    Next
    MyLen = c
End Function

ASP の目次
ホーム
(このページ自身の絶対的な URL)