1

私は世界で最も単純なコードを持っています。

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 に別のことを書く必要がありますか?

これに対する最も簡単な解決策は何ですか?

4

1 に答える 1