2012年08月12日
文字コード変換
VBScript で文字コードを変換する方法について書きます。
通常 VBScript では文字コードを意識する必要が無いようになっています。
気にする必要が出てくるのは、外部ファイルを扱うときです。
VBScript では、外部ファイルを扱うのに、便利なオブジェクトが用意されています。
ADODB.Stream オブジェクトです。
これを使って、文字コード変換をおこなってみましょう。
'オブジェクト作成
Set stm = CreateObject("ADODB.Stream")
'ファイルを開く
stm.Open "foo.txt"
'テキスト形式で設定
stm.Type = adTypeText
'文字コードを設定
stm.Charset = "utf-8"
'開始位置を設定(BOM がある場合は調整)
stm.Position = 0
'ファイル読込
buf = stm.ReadText(adReadAll)
'ストリームを閉じる
stm.Close
'書出用のファイルを開く
stm.Open "bar.txt"
stm.Type = adTypeText
'文字コードを設定
stm.Charset = "shift_jis"
stm.Position = 0
'ファイル書出し
stm.WriteText buf
stm.Close
なお、Scripting.FileSystemObject では shift_jis と utf-16 がサポートされているので、
shift_jis と utf-16 の相互変換でけでいえば、Scripting.TextStream だけでも実現可能です。
{a8.net http://books.livedoor.com/item/1822173}
通常 VBScript では文字コードを意識する必要が無いようになっています。
気にする必要が出てくるのは、外部ファイルを扱うときです。
VBScript では、外部ファイルを扱うのに、便利なオブジェクトが用意されています。
ADODB.Stream オブジェクトです。
これを使って、文字コード変換をおこなってみましょう。
'オブジェクト作成
Set stm = CreateObject("ADODB.Stream")
'ファイルを開く
stm.Open "foo.txt"
'テキスト形式で設定
stm.Type = adTypeText
'文字コードを設定
stm.Charset = "utf-8"
'開始位置を設定(BOM がある場合は調整)
stm.Position = 0
'ファイル読込
buf = stm.ReadText(adReadAll)
'ストリームを閉じる
stm.Close
'書出用のファイルを開く
stm.Open "bar.txt"
stm.Type = adTypeText
'文字コードを設定
stm.Charset = "shift_jis"
stm.Position = 0
'ファイル書出し
stm.WriteText buf
stm.Close
なお、Scripting.FileSystemObject では shift_jis と utf-16 がサポートされているので、
shift_jis と utf-16 の相互変換でけでいえば、Scripting.TextStream だけでも実現可能です。
{a8.net http://books.livedoor.com/item/1822173}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image