Tôi đã có một chức năng tạo ra một số XmlDocument:Làm cách nào để đặt thuộc tính mã hóa thành xml khác mà utf-16 bằng XmlWriter?
public string CreateOutputXmlString(ICollection<Field> fields)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.GetEncoding("windows-1250");
StringBuilder builder = new StringBuilder();
XmlWriter writer = XmlWriter.Create(builder, settings);
writer.WriteStartDocument();
writer.WriteStartElement("data");
foreach (Field field in fields)
{
writer.WriteStartElement("item");
writer.WriteAttributeString("name", field.Id);
writer.WriteAttributeString("value", field.Value);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.Flush();
writer.Close();
return builder.ToString();
}
tôi đặt một mã hóa nhưng sau khi tôi tạo XmlWriter nó có utf-16 mã hóa. Tôi biết đó là bởi vì chuỗi (và StringBuilder tôi giả sử) được mã hóa trong utf-16 và bạn không thể thay đổi nó.
Vậy làm thế nào tôi có thể dễ dàng tạo xml này với thuộc tính mã hóa được đặt thành "windows-1250"? nó thậm chí không phải được mã hóa trong mã hóa này, nó chỉ cần có thuộc tính được chỉ định.
chỉnh sửa: nó phải ở trong .Net 2.0 nên mọi phần tử khung công tác mới đều không thể sử dụng được.
Tôi biết nó không thể là một cách đúng đắn nhưng tôi sử dụng blahblah.Replace ("utf-16", "utf-8") khi tôi muốn trở lại chuỗi xml của tôi và nó làm việc cho tôi: D –