csharp 【C#】的XmlWriterの编码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 【C#】的XmlWriterの编码相关的知识,希望对你有一定的参考价值。
static void Main(string[] args)
{
// StrinBuilderだと、なぜかUnicode(UTF-16)になってしまう。
// MSDN(http://msdn.microsoft.com/ja-jp/library/system.xml.xmlwritersettings.encoding.aspx)によると、
// XmlWriterSettingsのEncodingよりも、基になるライターのエンコーディングが優先されるようだ。StringWriterも同様らしい。
var str = new StringBuilder();
using (var writer = XmlWriter.Create(str, new XmlWriterSettings() { Encoding = Encoding.GetEncoding("Shift-JIS") })) {
writer.WriteStartElement("Root");
writer.WriteElementString("Name", "うお座の花");
writer.WriteFullEndElement();
}
System.Diagnostics.Debug.WriteLine(str.ToString()); // <?xml version="1.0" encoding="utf-16"?><Root><Name>うお座の花</Name></Root>
// xmlヘッダーを書き換える方法もあるが、MemoryStreamを使うことでも解消できる。
using (var stream = new MemoryStream()) {
using (var writer = XmlWriter.Create(stream, new XmlWriterSettings() { Encoding = Encoding.GetEncoding("Shift-JIS") })) {
writer.WriteStartElement("Root");
writer.WriteElementString("Name", "うお座の花");
writer.WriteFullEndElement();
}
System.Diagnostics.Debug.WriteLine(Encoding.GetEncoding("Shift-JIS").GetString(stream.ToArray())); // <?xml version="1.0" encoding="shift_jis"?><Root><Name>うお座の花</Name></Root>
}
}
以上是关于csharp 【C#】的XmlWriterの编码的主要内容,如果未能解决你的问题,请参考以下文章
csharp 【C#】LINQ.Joinの提示
csharp 【C#】LINQ.ToLookupの提示
csharp 【C#】LINQ.OrderByの提示
csharp C#のビット计算の仕方
csharp 【C#,表格】的DataGridViewの列の工具提示に改行を入れる
csharp C#5.0 async / awaitでの主要メソッドの书き方