Microsoft のデータはメモ帳でも解るように、SHIFT_JIS と Unicode と (UTF8) しか通常では対応していないので、このような処理が実は結構必要になります。 しかし、このような方法はたぶんあまり知られて無いので、他のアプリケーションを利用している場合が多いのでは無いでしょうか。(というか、そもそもファイルシステムオブジェクトで UTF8、UTF8N、EUC-JP を対応しろって思いますけど。) 変換は全てメモリ上で処理します。 外部ライブラリを WEB 上に置いて読み込んで処理しているので、その部分は『コマンド』だと思って下さい。 例) Crun は、コマンドプロンプトでの実行を強制します VBScript の中に埋め込んだデータはファイルとしては Shift_JIS です。VBScript のインタープリタの内部的には Unicode ですが、何も考えなければ出力されたデータは Shift_JIS になってしまいます。 これを 5 種類のキャラクタセットとして意図的に出力します1) SHIFT_JIS 2) UNICODE 3) EUC-JP 4) UTF8 5) UTF8N※ UTF8 が少し特殊です(BOMを付加しています)
右端のアイコンよりダウンロードできます
<JOB> <SCRIPT language="VBScript" src="http://lightbox.in.coocan.jp/laylaClass.vbs"> </SCRIPT> <SCRIPT language=VBScript> ' *********************************************************** ' 処理開始 ' *********************************************************** Call laylaFunctionTarget( "http://lightbox.in.coocan.jp/" ) Call laylaLoadFunction( "baseFunction.vbs" ) ' Csript.exe で実行を強制 Crun ' 元となる shift_jis の文字列 strShiftJis = GetInline("shift_jis") ' このディレクトリ strDir = ScriptDir() ' ファイルシステムオブジェクト作成 GetFso ' 出力パス strPath1 = strDir & "\sjis.txt" strPath2 = strDir & "\unicode.txt" strPath3 = strDir & "\ujis.txt" strPath4 = strDir & "\utf8.txt" strPath5 = strDir & "\utf8n.txt" ' ファイルシステムオブジェクトで、sjis と unicode Call PutTextFile( strPath1, strShiftJis ) Call PutTextFileUnicode( strPath2, strShiftJis ) ' キャラクタセット変換用の Stream オブジェクト Set Stream = Wscript.CreateObject("ADODB.Stream") Set Stream2 = Wscript.CreateObject("ADODB.Stream") ' 開く Stream.Open Stream2.Open ' 二つ目はバイナリ専用 Stream2.Type = 1 Stream.Charset = "euc-jp" Stream.WriteText strShiftJis Stream.SaveToFile strPath3, 2 ' 先頭に移動 Stream.Position = 0 Stream.Charset = "utf-8" Stream.WriteText strShiftJis Stream.SaveToFile strPath4, 2 ' バイナリにコピー Stream.CopyTo Stream2 ' 一つ目もバイナリにする為、いったん閉じる Stream.Close ' 再度開いてバイナリにする Stream.Open Stream.Type = 1 ' バイナリを読んでバイナリに書く Stream2.Position = 0 Stream2.Read(3) Do while not Stream2.EOS Stream.Write Stream2.Read(16) Loop ' utn-8n Stream.SaveToFile strPath5, 2 ' 閉じる Stream2.Close Stream.Close print "処理が終了しました" print "" Wscript.Quit </SCRIPT> <RESOURCE id="shift_jis"> <![CDATA[ ここは、VBScript なので shift_jis になります。 必要に応じてキャラクタセットを変更します ]]> </RESOURCE> </JOB>
|
【VBScriptの最新記事】
- 【VBS】WshShell.Runによる外部プログラムの実行のバリエーションと注意事項
- VBScript で GUID 生成
- Windows 標準の CDO.Message で(GmailまたはYahoo!メールを使って)簡単にバッチ処理からメールを送る
- バックアップスクリプトを作るスクリプト
- バッチ処理の為の .wsf スケルトン / cscript.exe での実行を強制する / 自分自身の呼び出し
- 【VBS + Excel】シンプルな詳細設計書のフォーマット。1) Excel のダウンロード、2) VBScript で作成するサンプル
- VBScript : CAPICOM を使った通常文字列の Base64エンコードと SHA1 と MD5 と SHA256/384/512
- VBScript : デスクトップの列挙
- Excel シートから Basp21 を使用してメールの送受信をして、今後の何かに役立てる
- VBScript + clipコマンド + レジストリ登録で、エクスプローラのディレクトリの右クリックでファイル名のリストをクリップボードにコピーできるようにする
- VBScript(WMI) : OSの情報をコマンドプロンプトに一覧で表示する
- VBScript(WMI) : 共有一覧
- IE のお気に入りディレクトリにあるファイルの表示・非表示を設定する / HTA(HTML アプリケーション)
- VBScript : ディレクトリ内のディレクトリで使用している容量一覧
- VBScript(WMI) : システム環境変数の変更を監視する event_change_reg.wsf
- VBScript : スクリプトが存在するディレクトリをユーザ環境変数の PATH へ登録
- XMLファイルの書き換え (VBScript)
- VBScript から実行する PHPコードの PDF処理のサンプル
- Cscript.exe の引数と、Windows Script Host を無効にするレジストリ設定
- Access.Application ( docmd.TransferText ) でエクスポートとインポート