C# 如何解决C语言UTF8字节码转换中的特殊字符异常问题?

C# 如何解决C语言UTF8字节码转换中的特殊字符异常问题?,c#,utf-8,C#,Utf 8,我将字符串转换为UTF8字节码,因为它不接受任何特殊字符,也不转换它。所以,请帮助我了解如何在c中转换这些特殊字符 byte[] bytes = Encoding.UTF8.GetBytes("<Shipper>A & G VENLO BV</Shipper>"); 不要把人引入歧途。代码在解析Xml时抛出System.Xml.XmlException 事实上,字符串A&G VENLO BV不是格式良好的XML。XML中的&symbol必须转义 您必须使用正确

我将字符串转换为UTF8字节码,因为它不接受任何特殊字符,也不转换它。所以,请帮助我了解如何在c中转换这些特殊字符

byte[] bytes = Encoding.UTF8.GetBytes("<Shipper>A & G VENLO BV</Shipper>"); 

不要把人引入歧途。代码在解析Xml时抛出System.Xml.XmlException

事实上,字符串A&G VENLO BV不是格式良好的XML。XML中的&symbol必须转义

您必须使用正确的方法创建XML:

XmlDocument xmlDoc = new XmlDocument();
XmlElement shipper = xmlDoc.CreateElement("Shipper");
shipper.InnerText = "A & G VENLO BV";
xmlDoc.AppendChild(shipper);
因此,您将获得格式良好的XML

A&;G文洛私人有限公司 现在你可以用它了

byte[] bytes = Encoding.UTF8.GetBytes(shipper.OuterXml);

我在一个测试方法中执行了您的代码行,它返回了一个长度为33的字节数组。您能提供有关您的问题的更多信息吗?XmlDocument xmlDoc=new XmlDocument;xmlDoc.LoadXmlA&G VENLO BV;byte[]bytes=Encoding.UTF8.GetBytesxmlDoc.OuterXml;xmlDoc.LoadXml引发解析错误,因为无论文本编码如何,必须在XML中转义符号AND。所以使用xmlDoc.LoadXmlA&;G VENLO BV;工作正常。@NarasimhaKolla这段相关代码属于问题!