Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态加载的XML和XmlTextReader字符编码问题_C#_Unity3d - Fatal编程技术网

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

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

我加载的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)));
但是我在字符编码方面遇到了问题,例如,ç,ã,ê等。我该怎么做才能使它工作?

如果您使用,该函数需要以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。