VB2005でencoding=Shift_JISやEUC-JPのXMLファイルを保存する方法
- VB2005でencoding=Shift_JISやEUC-JPのXMLデータをファイルに保存する方法について教えてください。
- encoding=Shift_JISやEUC-JPのXMLデータをVB2005で保存する方法について説明してください。
- VB2005でShift_JISやEUC-JPのエンコードを使用してXMLデータをファイルに保存する方法を教えてください。
- ベストアンサー
VB2005 で encoding="Shift_JIS"や"EUC-JP"のXMLファイルを保存する方法
VB2005, XML の初心者です。 VB2005で encoding="Shift_JIS" や "EUC-JP" のXMLデータをファイルに保存するにはどうすれば良いのでしょうか。 encoding="UTF-8"であれば、下記で保存できますが、="Shift_JIS" や "EUC-JP" になると保存でエラーになってしまいます。 下記ソースでは、strXMLには正しくXMLが入っていますが、saveするとエラーになり、ファイルの中身を確認すると、日本語の箇所で切れていました。 Public Client As TcpClient Dim stream As NetworkStream stream = Client.GetStream() Dim Data(10000) As Byte Dim len As Int16 = stream.Read(Data, 0, Data.Length) strXML = System.Text.Encoding.UTF8.GetString(Data, 0, len) MsxmlDoc = New MSXML2.DOMDocument Msxmldoc.Loadxml(strXML) MsxmlDoc.save ( "C:\XML.xml") 文字コードについても初心者ですので、ヒントになるようなことでも教えていただければ幸いです。 よろしくお願い致します。
- XML
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
返事が遅くなりました。 すみません。 MSXML2.DOMDocumentでの文字コード指定による保存ですが、OKWave内でJScript.NETを用いた回答が過去にありましたので、参考URLをご覧になってみてください。 FileStreamを使用することで実現できそうです。 >また、初歩的なことかもしれませんが、XMLファイルの宣言文にある文字コード(encoding=)はどのように読めば良いのでしょうか。 読み込んで何をしたいのでしょうか? System.Xml.XmlDocumentのLoadXMLメソッドを使用すれば、あまり気にしなくても良いと思うのですが...
その他の回答 (1)
- HIROs-NET
- ベストアンサー率78% (15/19)
私のサイト(HIRO's.NET)で、文字コードを指定してXMLファイルを保存する(http://hiro.wankuma.com/VBNET2005/XML/DOM/DOM03.htm)というTipsがありますのでそちらをご覧になってみてください。 文字コードについては、Wikipediaの方をご覧ください(http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89)
お礼
早速の回答、ありがとうございます! HIRO's.NET のページを参考にさせていただき、System.Xml.XmlDocument でできましたが、MSXML2.DOMDocument では文字コードを指定して保存することはできないのでしょうか? また、初歩的なことかもしれませんが、XMLファイルの宣言文にある文字コード(encoding=)はどのように読めば良いのでしょうか。 追加の質問になってしまいますが、 もしご存知でしたら教えていただければ幸いです。
関連するQ&A
- VBでShift_JISへurlエンコードできないでしょうか?
VB6もしくはVBAですが、 文字列をShift_JISへurlエンコードしたいと思います。 utfやeucは方法があったのですが、Shift_JISに関しては 見つかりませんでした。 よろしくお願いします。
- 締切済み
- Visual Basic
- Shift-jisのPerlから、UTF-8、EUC、Shift-jisの3つのエンコードテキストを生成
Shift-jisで作ったPerlにて、テキストをEUC、UTF-8、Shift-jisにエンコードし外部検索サイト等にテキストリンクを飛ばしたいのですが、うまくいきません。 過去ログにUTF-8から、EUC、UTF-8、Shift-jisへのエンコード方法をみつけ http://oshiete1.goo.ne.jp/qa3745875.html 試行錯誤しましたが、Shift-jisからはうまくいきませんでした。 perl のバージョンは5.8.8です。 ご教示のほどよろしくお願いします。
- ベストアンサー
- Perl
- EUCからShift_JISに保存し直す方法
EUCで書かれたCGIをSHIFT-JISで保存し直す・・ と言う作業の過程での事なのですが・・ 秀丸を開きファイル名を指定して、 文字コードを日本語(EUC)にして、 開きます。 その後秀丸のその他-保存・読み込み-標準の文字コードで 日本語(SHIFT-JIS)にしてみましたが、どうも変わった気配が無く EUCのまんまのような気がします。 やり方間違えてますでしょうか? 秀丸をお使いでご存知の方がいらっしゃいましたら お教え下さいm(__)m
- ベストアンサー
- CGI
- EUCで保存されたスクリプトにてShift_jisでのHTML出力
perl見よう見まねで改造ができるレベルの者です。 表題の件ですが、ある登録スクリプトをEUCで保存し、登録データファイルもEUCで保存を行っているのですが、携帯からも対応させる為に、携帯用ページではShift_jisで表示を行いたいと思っています。 $word = "ああああ"; &jcode'euc2sjis(*word); 上記のようなコードで、EUCで保存されたスクリプト内の文字がShift-JISに変換されるというのを見つけたのですが、これがprint文の場合どうすれば良いのかわかりません。 例えば、 print "Content-type: text/html;charset=shift_jis\n\n"; print <<_HTML_; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form method="POST" action="CGIファイル"> 登録項目1<br> <input type="text" name="touroku1" value="$in{'touroku1'}"><br> 登録項目2<br> <input type="text" name="touroku2" value="$in{'touroku2'}"> </form> </body></html> _HTML_ 上記のようなHTMLをShift_jisで表示する場合、どのようにすればよいのでしょうか? use encoding 'euc-jp', STDOUT=>'shift_jis' while(<>){ print $_; } 上記のようなコードも調べたのですが、今一適用方法が解らない状況です。 また、携帯用ページではShift_jisで表示を行いたいのと同時に、登録データファイルにはEUCで保存されるようにする方法もご教授頂けますと幸いです。 宜しくお願い申し上げます。
- ベストアンサー
- Perl
- VB2005でUTF-8からshift_JISに変換する方法
VB2005の初心者です。 UTF-8のXMLデータで、一部日本語の項目が化けているのでshift_JISに変換したいのですが、やり方が分りません。 下記のとおり、XMLデータから項目を抽出して、ログに出力すると化けてしまいます。 Dim CreatorInfodNode As Xml.XmlNodeList CreatorInfodNode = xmlDoc.SelectNodes("/Mml/MmlBody/MmlModuleItem/docInfo[@contentModuleType=contains(@contentModuleType,'patientInfo')]" + _ "/mmlCi:CreatorInfo/mmlPsi:PersonalizedInfo/mmlPsi:personName/mmlNm:Name/mmlNm:fullname", nsmgr1) LbLogFlg = WriteLogFile("fullname:" + CreatorInfodNode(0).InnerText.Trim) ↓ログの出力結果 fullname:????????????????????? 皆様の知恵をお借りできれば幸いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- Shift_JISをeuc-jpに変換
エクセルのデータをテキストに保存し直したデータがあります。 中身はタブ区切りの日本語の単語が数千レコード。 この時、このテキストファイルの文字コードは当然「シフトJIS」ですが、これをperlで受け取ってフォームから文字検索を行いテーブルに検索結果を表示させるプログラムを作りました。 シフトJISなので案の定、文字化けを起こしました。 なのでデータを一度「euc-jp」に変換すると「表」や「ー」などは文字化けを起こすことなく表示するようになりました。 ところが、「(1)、(2)、(3)・・・」の丸数字だけが何故か文字化けしたままで直りません。 なんとかなりませんでしょうか? #データの読み込み open F_DATA, '<', "$cgiparam" or die; my @lines = <F_DATA>; close F_DATA; #文字コードの変換 foreach (@lines){ Encode::from_to($_,"Shift_JIS", "euc-jp"); } よろしくお願いします。
- ベストアンサー
- Perl
- EUCのデータファイルをShift_jisで読み込む方法
初めまして。 perlの知識は殆ど無く、見よう見まねで改造をするレベルです。 質問させて頂きたいのですが、 あるスクリプトにてEUCで保存(書き込まれた)されたデータファイルを、違うスクリプトにてそのデータファイルを読み込む際に、Shift_jisで読み込みたいのですが、どのような方法がありますでしょうか? それぞれのスクリプトを共通の文字コードで保存すれば良いのですが、データを保存する側のスクリプトでShift_jisにすると、"表"や"ー"などのデータが登録できなく、それの対処方法が解らなかった為、そのスクリプトとデータファイルをEUCで保存する事によって解決する事はできましたが、今度は別のスクリプトでそのデータファイルを読み込む必要があり、読み込む側ではShift_jisで保存されているスクリプトですので、文字化けが起こりデータファイルを読み込む事ができない状況です。 この読み込む側のスクリプトをEUCで保存をするのも検討しましたが、読み込む側のスクリプトが一つではなく複数ありますので、できればこれらはShift_jisのままで、データファイルを読み込む際に「Shift_jisに変換して読み込む」行為ができればと思い、質問させて頂きました。 ※具体的には会員登録用スクリプトとその登録されたデータファイルがEUCで保存されており、会員データファイルを読み込む全く別の掲示板などのスクリプトがShift_jisで保存されています。 もし宜しければご教授頂けますと幸いです。 宜しくお願い申し上げます。
- ベストアンサー
- Perl
- 文字コードEUC→SHIFT-JISにすると動作しません
http://cgikon.com/search/detail.php3?menu=1&cgi_id=412 上記の簡単なスクリプトを使いたいと思っています。 文字コードがEUCとなっており、そのままの状態で設置すれば動作します。 EUCではなく、SHIFT-JISにして動作させたいのですが、中に書かれている「EUC - JP」を「SHIFT - JIS」に書き換えて、またファイルの文字コードも「SHIFT-JIS」として保存しました。 またCSVデータも「SHIFT-JIS」に変換して保存。 変換したファイルをアップしてみましたが、表示される表の数値の箇所が真っ白になってしまいます。 一番上の行と一番左の列は表示されます。 足し算される数値の部分だけが表示されません。 どのようにすれば、EUCからシフトJISに変換して、動作させる事ができるのでしょうか。 アドバイスをお願い致します。
- ベストアンサー
- Perl
- [Perl]Shift-JISのXMLを解析する場
行き詰まってしまったので教えて下さい。 <やりたいこと> とあるAPIからXMLファイルを取得し、解析して出力する、ということをやっているのですが、元のXMLがShift-JISでエンコーディングされており、これをUTF-8に変換して出力しようとしています。 <問題> XMLを取得して解析、取り出したいパラメータが出力できるようにはなったのですが、文字のエンコーディングが上手く行っていないためか、文字化けしてしまいます。 <元のXML> <?xml version="1.0" encoding="Shift_JIS"?> <test> <prod count=3> <record> <code>アイウエ</code> </record> <record> <code>カキクケ-</code> </record> <record> <code>ABC</code> </record> </prod> </test> <XML解析用のコード> #!usr/bin/perl use utf8; use Encode qw/ from_to encode decode /; use Encode::Guess qw/ euc-jp shiftjis 7bit-jis /; use LWP::UserAgent; use XML::Simple; use Data::Dumper; #--XML取得部分省略 #--XMLはgetで$xmlに格納 $from = guess_encoding($xml)->name; &from_to($xml,$from,"utf8"); $XML::Simple::PREFFERRED_PARSER = 'XML::SAX::PurePerl'; $xs = new XML::Simple(); $ref = $xs->XMLin($xml); $xml =~ s/<\?.*\?>//; for($i=0;$i<=$#{$ref->{'test'}->{'prod'}->{'record'}};$i++){ $name = $ref->{'test'}->{'prod'}->{'record'}[$i]->{'code'}; $name = encode('utf-8',$name); print "$i : $name\n"; } <結果> 黒ダイヤに?文字で文字化けして出力される。 どなたか原因がお分かりになりますでしょうか。 よろしくお願いいたします。
- 締切済み
- Perl
- VBでXMLファイルを作成していますが、エラーになります
すみません、教えてください。 VB6でXMLファイルを作成しています。コメントを入れようとすると"!--"の文字でこけます。どうしたらいいのでしょうか?コーディングは以下のようにしてます。 Dim xmlDoc As New MSXML2.DOMDocument40 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(3) As IXMLDOMNode '要素 garFNRpt = sFPass + "Sousinfile\DATA\" + sFilemei + ".xml" 'XML宣言を追加します。 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, """!--""kml基本情報", "")) よろしくお願いします
- ベストアンサー
- Visual Basic
補足
回答いただいたにもかかわらず、 それに対する補足が遅くなり申し訳ございません。 やりたいことは、Aシステムから通信で送られてきたxmlをBシステムで保存したいのですが、Aシステムからは、EUC, S-jis, UTF-8 のいずれかで送られてくる可能性があるため、宣言文にある文字コード(encoding=)を読んで、それによって処理を分けたいのです。 MSXML2.DOMDocumentで文字コード(encoding=)を取得する方法はあるのでしょうか。 もし何かご存知でしたらご教授いただければ幸いです。 よろしくお願い致します。