tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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への変換に失敗していることは
ないと思えるのですが。

本当に説明不足ですみません。
よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。