- - PR -
[VB.NET2005+XML] XMLのencodingがShift_JISが読み込めない
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-12-06 20:15
XMLのencodingがShift_JISだとReaderで取り込めません。
utf-8だと問題なく取り込めます。(encoding以外中身は一緒) 文字コードの確認は秀丸で、エンコードの種類を確認しています。
・Shift_JIS
| ||||||||||||
|
投稿日時: 2006-12-06 20:50
XmlTextReaderはデフォルトではutf-8で処理されるからではないでしょうか?
_________________ -------------------------------------------- HIRO's.NET VB.NETとC#のTipsを掲載しています [ メッセージ編集済み 編集者: HIRO 編集日時 2006-12-06 20:51 ] | ||||||||||||
|
投稿日時: 2006-12-06 20:53
がんふぃーるどです。お世話様です。
XMLパーサは<?xml ... encoding=... ?>の文字エンコードを指定している部分を見て くれません。文字エンコーディングの指定はXmlTextReader.Encodingで直接行う必要 があります。(意外に不便) なので、指定してあげましょう。(テキストリーダを挟んだりしてもいいです) ちなみに、utf-8が正常に取り込めたのは、XmlTextReader.Encodingの規定値がutf-8だからですね。 | ||||||||||||
|
投稿日時: 2006-12-06 21:12
XmlTextReader.Encoding プロパティは、ReadOnly だったかと思いますが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-12-06 22:37
やっぱ見てくれないのですね。うーむ。
ですです。ReadOnlyなので、どーしたもんかと。 XmlTextReader.Createにエンコード指定もないし。 http://msdn2.microsoft.com/ja-jp/library/system.xml.xmltextreader.encoding(VS.80).aspx
とは書いてあるけどサポートするのか、例外なのか読み取れないorz まー実際読めてないわけで・・・ | ||||||||||||
|
投稿日時: 2006-12-06 23:28
手元で簡単にテストした限り、XmlReaer.Create(Stream, XmlReaderSettings) はちゃんと encoding 宣言を見て使用するエンコーディングを決定していますね。
データのソースが MemoryStream なのが気になります。ちゃんと Shift_JIS なバイト列になっていますか? [ メッセージ編集済み 編集者: Hongliang 編集日時 2006-12-06 23:29 ] | ||||||||||||
|
投稿日時: 2006-12-06 23:32
ぎゃっ。リードオンリーでしたか。確認してませんでした。申し訳ありません(>_<) ストリームを直接XMLリーダに渡すのでは無く、ストリーム→テキストリーダ(文字エンコード指定したもの)→XMLリーダって感じですね。 お手数おかけしました。(>▽<;; アセアセ [訂正] 再三にわたる訂正申し訳ありません。.NET2.0ではXmlReader.Createメソッドで文字エンコーディングの特定を行っておりました。 ですので、Hongliangさんの言うとおり、本当にshift-jisのコードで読み込みが行われているかチェックするのが良いです。(またはファイルが本当にshift-jisコードになっているか) [ メッセージ編集済み 編集者: がんふぃーるど 編集日時 2006-12-06 23:34 ] [ メッセージ編集済み 編集者: がんふぃーるど 編集日時 2006-12-07 00:24 ] | ||||||||||||
|
投稿日時: 2006-12-07 08:21
私も自分の環境で試してみました。(MemoryStreamは使用せずパスを指定しました) Hongliangさんの仰るとおり、encoding宣言を見て、使用するエンコーディングを決定するようですね。 MsgBoxのところまで問題なく実行できました。
上記訂正いたします _________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ |