hb

VBScript で文字列のバイト数をカウントする

先日お仕事でちょっとしたスクリプトを書いていたのだけど、Inputbox で入力した文字列をチェックするのに LenB 関数を使おうと思ったら、入力してる文字列は 2バイトなのに 4が返ってくるのでおかしいおかしいと散々悩んだ。どうやら内部 Unicode で処理をしているらしくそれが仕様通りの動きみたい。リファレンスにはそんなこと欠片も書いてないのに。。調べてみると VBなら

a = LenB(strConv("123あいう", vbFromUnicode))

のように 既定のコード ページに変換して数えられるようなんだけど、VBScript はダメらしい。それでもさすがにそれじゃ困るだろ常考、と何か代替方法がないか調べたところ、素晴らしい記事を発見。
VBScript でシフト JIS の文字列のバイト数を数える (unibon)
ほんと助かりました。本来的には代替手段が実装されて然るべきですよねぇ。