动态加载的XML和XmlTextReader字符编码问题

时间:2014-05-14 12:39:49

标签: 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)));

但是我遇到了字符编码问题(é,ç,ã,ê等)。我能做些什么让它有效?

1 个答案:

答案 0 :(得分:0)

如果您使用WWW.text,则该功能需要使用UTF-8ASCII编码的网页内容,但您的客户使用Windows-1252

与已建议的Bart类似,最好的方法是请求客户只使用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);