はじめに
VBScript(.vbs)をUTF-8で保存して実行すると、コンパイルエラーとなり、実行させることができません。
たとえば、以下のような、メッセージを出力するだけのvbsスクリプトを作ります。
hoge.vbs
Main() Sub Main() MsgBox "ほげ" End Sub
このファイルをShift_JIS形式で保存してcscript.exeから実行すると動作しますが、UTF-8形式で保存して実行すると、コンパイルエラーとなります。
hoge.vbsをUTF-8で保存して実行した場合
cscript hoge.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
hoge.vbs(3, 15) Microsoft VBScript コンパイル エラー: 終了していない文字列型の定数です。
上記のことから、.vbsファイルでは、Shift_JIS範囲外の文字列を出力することができないということになります。
これを回避するためには、.wsfファイルでスクリプトを作成します。wsfファイルの場合、charsetを指定できるため、UTF-8でも問題なく動作させることが可能です。
hoge.wsf
<?xml version="1.0" encoding="utf-8" ?> <package> <job> <runtime></runtime> <script language="VBScript"> <![CDATA[ Main() Sub Main() MsgBox "ほげ" End Sub ]]> </script> </job> </package>