msgbox での文字化け

解決


かめ  2004-11-10 01:22:18  No: 86580

Windows2000上のWSHで

msgbox "<UTF-8もじれつ>"

と実行すると文字化けされたものが表示されます。
同じくテキストファイルへの書き出しの再にも
write (<UTF-8もじれつ>)
とした時点でエラーが発生します。

これは解決方法はあるのでしょうか?
どなたかご教示ください


魔界の仮面弁士  2004-11-10 03:06:39  No: 86581

> msgbox "<UTF-8もじれつ>"
> と実行すると文字化けされたものが表示されます。

質問の内容を、もう少し具体的にお願いします。
上の「もじれつ」なコードを、そのまま
実行しているわけでは無いでしょうしね。(^^;

まず、VBScriptの文字列は、内部で UCS-2/UTF-16として保持されています。
そのため、UTF-8なバイトデータを渡しても、利用できません。

それとも、ソースファイルがUTF-8という事でしょうか?
この場合でも、内部的にはUTF-16となりますが、フォントさえ
正しくインストールされていれば、文字化けはおきないと思いますよ。

とりあえず、当方で実験したサンプルをあげておきますので、
そちらの環境で、動作を確認してみてください。
(ソースコードと一緒に、画面イメージも入れてあります)
http://www.ocv.ne.jp/~oratorio/junk/Sample/33/MsgBoxUTF8.zip

当方環境では、Windows XPの場合とWindows 2000の場合とで、
アラビア語のように、右から左に流れる言語の表示に差がありますが、
文字化けという状態にはなっていませんでしたよ。


かめ  2004-11-12 00:39:23  No: 86582

>質問の内容を、もう少し具体的にお願いします。
>上の「もじれつ」なコードを、そのまま
>実行しているわけでは無いでしょうしね。(^^;
議論のポイントを絞ろうと知恵を絞ってなるべく
簡潔に書いてみたつもりでした(^^;)
蛇足でしたね、すいません。

SQLサーバから抜いたデータをCSVに吐き出したかったのですが、
UTF-8の文字のみ化けて(もしくはエラーが発生)しまっていたので
質問をさせて頂いた次第です。

CSV自体及びソースがテキストファイル(s-jis)でしたのでエラーと成っておりました。

ありがとうございました。
ソース非常に参考となりました。


かめ  2004-11-12 00:40:22  No: 86583

解決です


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加