C# 动态加载的XML和XmlTextReader字符编码问题
我加载的XML如下所示:C# 动态加载的XML和XmlTextReader字符编码问题,c#,unity3d,C#,Unity3d,我加载的XML如下所示: var url = Application.dataPath + @"/config.xml"; var www = new WWW(url); while (!www.isDone) { yield return new WaitForSeconds(0.2f); } 之后,我创建一个XmlTextReader来解析该XML: GameSettings.ParseXML(new XmlTextReader(new StringReader(www.text
var url = Application.dataPath + @"/config.xml";
var www = new WWW(url);
while (!www.isDone)
{
yield return new WaitForSeconds(0.2f);
}
之后,我创建一个XmlTextReader来解析该XML:
GameSettings.ParseXML(new XmlTextReader(new StringReader(www.text)));
但是我在字符编码方面遇到了问题,例如,ç,ã,ê等。我该怎么做才能使它工作?如果您使用,该函数需要以UTF-8或ASCII编码的网页内容,但您的客户使用的是Windows-1252
正如已经建议的那样,最好的方法是要求客户只使用UTF-8。如果不可能,并且您确信客户始终使用Windows-1252,您可以在应用程序内转换编码
Encoding windows1252 = Encoding.GetEncoding("Windows-1252");
Encoding utf8 = Encoding.UTF8;
byte[] windowsBytes = www.bytes;
byte[] utf8Bytes = Encoding.Convert(windows1252, utf8, windowsBytes);
string converted_xml = utf8.GetString(utf8Bytes);
在xml文件中,是否在标题中指定了编码?@KevinCook no!!!就是那个!?:OO@KevinCook好我投入工作,但仍然没有工作..:也许可以尝试Encoding.UTF8.GetStringEncoding.UTF8.GetByteswww.text并将其传递给stringreader?这些字符有什么问题?请记住,如果您有显示问题,Unity使用UTF-16。