提问人:Aram Gevorgyan 提问时间:9/27/2023 最后编辑:Aram Gevorgyan 更新时间:9/27/2023 访问量:33
xml如何在适用于所有PC的.Net中序列化德语变音符号?
How xml serialze german umlaut character in .Net that works on all pcs?
问:
我正在尝试将文本序列化为包含德语 ä 字符的 xml 文件,当我在一台 PC 上运行此代码时,它工作正常,在其他 PC 上而不是 ä 我得到 д 或 д,在其他 PC 上,当我运行代码时,我得到方形。我尝试了不同的东西,这是我的代码:
string text = "säure";
XmlSerializerNamespaces xmlnsEmpty = new XmlSerializerNamespaces();
xmlnsEmpty.Add("", ""); // This line solves the issue with saving XML file with German letters on some PCs
XmlSerializer xmlSerializer = new XmlSerializer(typeof(string));
var utfWithoutBom = new UTF8Encoding(false);
var settings = new XmlWriterSettings
{
Encoding = Encoding.UTF8, // Use UTF-8 to support German letters
Indent = true,
OmitXmlDeclaration = true,
};
using var stream = new FileStream("output.xml", FileMode.Create);
//using var sw = new StreamWriter(stream,Encoding.GetEncoding("ISO-8859-1"));
using var writer = XmlWriter.Create(stream, settings);
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("de-DE");
xmlSerializer.Serialize(writer, text, xmlnsEmpty);
例如,我得到这个结果:
从我的代码中可以看出,我几乎尝试了所有方法,但 notihng 有所帮助。我做错了什么?
答: 暂无答案
评论
File.ReadAllBytes
BitConverter.ToString(byte[])