バージョン情報には掲載がない
関数のリストにもない
VBScriptの関数
ここで記載されているのはChrとASCのみである。
もともとVBScriptのファイル(.vbs)はANSI(Shift-Jis)形式だけでUTF-8
はエラーになる。
【VBScript】Windows10でmsgboxが文字化けする原因と対策
なのでメモ帳のデフォルトがUTF-8になったためトラブルになる。
内部処理はUTF-16
まず、VBScriptの文字列は、内部で UCS-2/UTF-16として保持されています。
そのため、UTF-8なバイトデータを渡しても、利用できません。
このためサロゲートペアとなる
Working with character values beyond ChrW(65535) in VbScript
ChrWは使えるもののUTF-16なのでサロゲートペアになる。Shift-JisのVBSではサロゲートペアで表記しなければならない。
公式のサンプルにはごくまれに使われ、解説もない
https://learn.microsoft.com/ja-jp/windows/win32/hyperv_v2/getvirtualsystemthumbnailimage-msvm-virtualsystemmanagementservice
今回発見できたのはこれだけだった。
公式の解説や新機能の説明はVBSにはない。
XP時代から使えていた
WSH(VBScript) で Unicode 固有文字を表示/リダイレクトするには
ということは、ロケールによって変わらない Ascii の文字にエンコードするプログラムを介して、子プロセスを実行して、親プロセスの WSH が Unicode にデコードすれば、正しく表示できるというわけです。 ただし、Windows XP の VBScript の ChrW にバグがあって、U+8000 以上の文字コードを文字に変換できません。Windows 7 なら大丈夫です。 U+10000 以上の文字(サロゲート・ペア)は、コマンド・プロンプト、Power Shell とも Windows 7 でもサポートしていません。 ちなみにメモ帳はサポートしています。
と、このようにChrWは当たり前に使われているのだが、なぜかVBSに含まれていることは公式の解説には見当たらない。
VBのサブセットだから当然使えるということなのかもしれないが。