- 締切済み
文字コード判別・変換について(JIS⇒UTF-8)
あるサーバからのXMLファイルを、HTMLファイルへ加工するプログラムを作成しています。 INPUTのXMLファイルが仕様により、UTF-8、S-JIS、JIS、ISO-8859-1が同一ファイル内で混ざった状態で送られてくるのですが、(1)入力文字のコードを判別できる関数(もしくはプログラム)、(2)JIS⇒UTF-8文字列変換関数(もしくはプログラム)について、ご教授下さい。 【環境】 OS:WindowsXP 言語:VBS(又はPerl)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
以前答えていますが.探してください。 Get 命令を使っていたはず。 回答した分量が多すぎて.現行ルーチンのどの部分を回答したかは忘却。 拡張はそんなに難しい内容ではないはずです。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>XMLファイルが仕様により、UTF-8、S-JIS、JIS、ISO-8859-1が同一ファイル内で混ざった状態で送られてくる 同一ファイル内でって、それってXMLの要件を満たしていないような気がします。 (1)は、VBSの場合では、そのような文字コード判別関数がありません。 また、バイナリ入出力を(現在)サポートしていいないので、プログラム的にもムリだと思います。 普通のXMLファイルだと Microsoft.XMLDOMなどのCOM(ActiveX)を使って読込(S-JISとして保存できます) また、XSLTを使うことで、HTMLファイルへの変換もできます。 変換様式が定まっているならXML+XSLTでVBSから簡単に変換できます。 (2)VBSは、同様の理由でムリっぽい。 Perlは、Encode::from_to 関数が使えます。
お礼
ご回答ありがとうございます。 この入力ファイルにおいて、こちら側ではかなり憤慨しております。ほんとムカつきます。 ・・pertで確認してみます。
- sakusaker7
- ベストアンサー率62% (800/1280)
Perlのバージョンが5.8.xであるなら、 Encode::Guess が使えると思います。ただし、ISO-8859-1もありうるということなので 正しく判定できるかどうかは保証できません。
お礼
ご回答ありがとうございます。 早速試してみます。
お礼
回答ありがとうございます。