ちょっと良く分からなかったのに加えて調査する時間がないのでメモだけ。
前提 §
.NET Framework 2.0のWebClient.UploadStringメソッドでXML文書を送信する。
受信側はASP.NET 2.0のフォームのLoadイベント。
LoadイベントハンドラのXmlDocument doc = new XmlDocument();というdocオブジェクトに対して。
その1 §
doc.Load(this.Request.InputStream);
これで行けるかと思ったが通らない。
その2 §
byte[] ar = new byte[32768];
int l = this.Request.InputStream.Read(ar,0,ar.Length);
string s = System.Text.Encoding.UTF8.GetString(ar, 0, l);
doc.LoadXml(s);
これは通る。
(しかし、固定サイズバッファは無駄が多いし、溢れの危険もある)
その3 §
doc.Load(new StreamReader(this.Request.InputStream,System.Text.Encoding.UTF8));
これでも通る。
(これなら安心。とりあえず、これを使うか)
感想あるいはたわごと §
XML 1.0勧告の通りに実装してあれば、デフォルトでUTF-8のXML文書は解析可能のはずだと思いましたが。
どうも、明示的なUTF-8への変換を外部に持たせないと解析してくれない感じでしょうか?