- PR -

wshでShift_JIS以外の文字コードを使うには

1
投稿者投稿内容
noteZ
会議室デビュー日: 2006/07/22
投稿数: 9
投稿日時: 2006-07-26 09:27
ここに掲載されているスクリプトのstrReplとstrWithの値を変更した
置換スクリプトを利用しています。

http://www.atmarkit.co.jp/fwin2k/win2ktips/308strrpl/strrpl.html

このスクリプトは文字コードがEUC_JPやUTF-8のファイルを処理すると、
Shift_JISに変換されてしまい全角文字が化けるようです。

今までは、文字コードがShift_JISのファイルしか扱わない仕事だったので
問題なかったのですが、最近EUC_JPやUTF-8のファイルも扱うようになり、
文字化けの現象に遭遇し、困っています。

このスクリプトを修正して、Shift_JIS以外の文字コードを扱えるように
するにはどうしたらよいでしょうか?
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-07-26 13:35
Scripting.FileSystemObject で扱える characters code は system 規定の code(通常は Shift-JIS) と Unicode(UTF-16) のみです。他の characters code を利用したい場合は、ADODB.Stream を用いるとよいでしょう。
noteZ
会議室デビュー日: 2006/07/22
投稿数: 9
投稿日時: 2006-07-29 13:26
回答ありがとうございます。
Scripting.FileSystemObjectはShift_JISとUTF-16しかつかえないというのは
ちょっと残念ですが、ADODB.Streamというので、対応できそうという情報は
ありがたいです。
そこで、さっそく以下のようにスクリプトを変更したのですが、
エラーになってしまいます。
<object id="objFs" progid="Scripting.FileSystemObject" />

<object id="objFs" progid="ADODB.Stream" />
単純に置き換えるだけでは無理でコマンドとかも変更しないといけないのでしょうか?
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-07-30 16:00
文字エンコーディング ADODB.Stream
で検索
noteZ
会議室デビュー日: 2006/07/22
投稿数: 9
投稿日時: 2006-07-30 22:00
回答ありがとうございます。
ご指摘の通り、googleとYahooで 文字エンコーディング ADODB.Stream を
検索してみました

ADODB.Stream について記載されたサイトが見つかりましたが
だいたいのサイトでは、文字コードの変換をするスクリプトのみが
記載されていました。
これを利用しても、以下のようにスクリプトを数種類作って3回スクリプトを
実行しないといけないようです。
1.UTF-8又はEUCJPのファイル>文字コード変換スクリプト>JISのファイル
2.JISのファイル>文字置換スクリプト>JISファイル
3.JISファイル>文字コード変換スクリプト>UTF-8又はEUCJPのファイル
これらの作業をスクリプトを分けずに1つのスクリプトで実行できるように
する事は可能でしょうか?
複数スクリプトを実行する方法でもスクリプトを自分だけが使うなら良いのですが
ファイルサーバ上に置いて他の人に実行してもらう事も考えると1回の処理で済む
ようなスクリプトにしておきたいです。
WEBサーバ等で不特定多数が同時に使ったりするわけではないので、
中間ファイルができたりしてもかまいません。

どうか、お知恵を拝借おねがいします。
1

スキルアップ/キャリアアップ(JOB@IT)