私は世界で最も単純なコードを持っています。
using (XmlWriter writer = XmlWriter.Create(stringWriter))
{
writer.WriteStartDocument();
writer.WriteStartElement("Board");
writer.WriteAttributeString("Rows", mRows.ToString());
writer.WriteAttributeString("Columns", mColumns.ToString());
writer.WriteEndElement();
writer.WriteEndDocument();
}
TextWriter writer1 = new StreamWriter(path);
writer1.Write(stringWriter.toString());
writer1.Close();
次に、次のようなtxtファイルに書き込みます。
<?xml version="1.0" encoding="utf-16"?>
<Board Rows="30" Columns="50">
</Board>
次に、次のことを行います。
FileStream str = new FileStream(s.FileName, FileMode.Open);
using(XmlReader reader = XmlReader.Create(stream))
{
reader.Read();
}
そして、例外をスローします:
「Unicodeバイトオーダーマークがありません。Unicodeに切り替えられません。」
私は例外をグーグルで検索し、いくつかの回避策を見つけましたが、なぜ回避策が必要なのかわかりません。私が書いたxmlを読みたいだけです。誰かが正確に何が問題なのか説明してもらえますか? xml に別のことを書く必要がありますか?
これに対する最も簡単な解決策は何ですか?