タイトル : Re^4: 文字コードを変換 投稿日 : 2008/05/04(Sun) 09:20 投稿者 : ゆうき
ゆうきです。おはようございます。 魔界の仮面弁士さん、回答ありがとうございます。 説明不足ですみません。 > > RSSを読み込むソフトを作っていて、RSSのXMLを書き出すのは > RSS であれば尚のこと、System.Xml を使うべきかと思いますよ。 > > > 自分ではなく、別のソフトなので、どのエンコードで > > 書き出しているのかすらわからないのです。 > 事前に分からずとも、取得した時点では分かりますよね。 > XML では、文字化けが発生せぬよう、明確な規則を持っているのですから。 > http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html > > 外部(インターネットからダウンロードしたソースファイル)を使って > > XMLを読み込んでいます。なので、XmlDocumentクラスは使えません。 > なぜ、XmlDocument クラスを使えないのでしょうか? > URL を指定して読み込むことも、XML データを文字列として読み込むことも、 > ダウンロードしたファイルを指定することもできますけれども…。 すみません、インターネットからダウンロードしたソースファイルというのは、 VB.NETのコードファイル(*.vb)のことで、XMLのことではありません。 外部(インターネットからダウンロードしたソースファイル)を見てみたところ、 XmlDocument.Loadメソッドを使っていました。 WebClientクラスでインターネットからRSS(XML)をダウンロードし (OpenReadメソッド)、StreamReaderクラスでOpenReadメソッドで読み込んだ ストリームを読み込み、それをXmlTextReaderクラスで読み込んでいるように見えます。 XMLのバージョンを見てみたところ、Version 1.0で、Encoding Shift-JISでした。 なので、Shift-JISからStringのUnicodeへの変換に失敗しているように見えるのですが、 魔界の仮面弁士さんの話だと、 > XmlDocument.Load では、その規則を元に、正しい文字コードが判定され、 > 正しい文字列へとデコードされますので、ご自身で把握しておらずとも、 > データを正確に読み込ませることができます。 ということなので、Shift-JISからUnicodeへの変換に失敗していることは ないと思えるのですが。 本当に説明不足ですみません。 よろしくお願いします。 |