Javascript xml对象中的特殊字符问题

Javascript xml对象中的特殊字符问题,javascript,xml,ajax,Javascript,Xml,Ajax,实际上,我只是XML的初学者。 在我的一项任务中,我正在做以下工作: var req = new XMLHttpRequest(); req.open('GET', 'http://www.mohin.com/test.xml', false); req.send(); var xmlObj = req.responseXML; 现在,我得到的XML是: <?xml version="1.0" encoding="utf-8"?> <Items status="as"

实际上,我只是XML的初学者。 在我的一项任务中,我正在做以下工作:

var req = new XMLHttpRequest(); 
req.open('GET', 'http://www.mohin.com/test.xml', false);
req.send();  
var xmlObj = req.responseXML;
现在,我得到的XML是:

<?xml version="1.0" encoding="utf-8"?>
 <Items status="as">
    <Song title="Helios (Original Mix)">
       <Artist name="Chris Hingher" ID="291728"></Artist>
       <Info StartTime="19:37:39" JazlerID="2219" PlayListerID="" />
    </Song>
    <Song title="I Was Drunk">
       <Artist name="Riva Starr Feat. N�ze" ID="292052"></Artist>
       <Info StartTime="19:45:38" JazlerID="2267" PlayListerID="" />
    </Song>
    .............
 </Items>
谢谢
Mohin

您是否检查了XML文件的编码格式?可能来自那里。

您检查过XML文件的编码格式了吗?可能来自那里。

当您创建XML文件时,使用UTF-8保存它,并声明它是使用UTF-8保存的。

当您创建XML文件时,使用UTF-8保存它,并声明它是使用UTF-8保存的。

看起来用于保存XML文档的编码不是XML序言中指定的编码(encoding=“utf-8”)。如果XML文件由哑编辑器手动编辑和保存,则可能发生这种情况


假设您可以更改XML文档,将
编码
属性从“utf-8”修改为“iso-8859-1”。如果可以,那么您应该更加小心XML文档的编码。

看起来用于保存XML文档的编码不是XML序言中指定的编码(encoding=“utf-8”)。如果XML文件由哑编辑器手动编辑和保存,则可能发生这种情况


假设您可以更改XML文档,请将
编码
attibute从“utf-8”修改为“iso-8859-1”。如果它起作用,那么您应该更加小心XML文档的编码。

问题肯定出在服务器端。仅在XML声明中设置UTF-8是不够的。您必须实际使用UTF-8编码编写输出,否则它会出现在平台默认值中,在本例中类似于iso-8859-1,正如@gawi正确指出的。您好,非常感谢您的回答。我不能从代码中解决问题吗?XML是软件生成的XML,因此我无法更改或修改它。您应该与生成XML文档的网站负责人联系。我想不出一个简单的Javascript解决此类问题。问题在于它ely在服务器端。仅在XML声明中设置UTF-8是不够的。您必须实际使用UTF-8编码编写输出,否则它将在平台默认值中显示,在本例中,它看起来像iso-8859-1,正如@gawi正确指出的。您好,非常感谢您的回答。我不能从代码中解决问题吗?XML是s软件生成的XML,因此我无法更改或修改。您应该与生成XML文档的网站负责人联系。我想不出解决此类问题的简单Javascript方法。您好,非常感谢您的回答。我不能从代码中解决问题吗?我不能从生成XML的位置更改或修改钕saved@Mohin问题是,它不是格式良好的XML。它被破坏了,有缺陷。总有一个点,你可以拒绝一个不可行的输入。这可能已经过去了,也可能还没有过去。你可以尝试像tidy.sourceforge.net这样的软件来解决编码问题。嗨,非常感谢你的回答。我不能从我的代码中解决这个问题吗?我无法更改或修改生成xml的位置,并且saved@Mohin问题是,它不是格式良好的XML。它是破损的,有缺陷的。总有一个点,你可以拒绝一个不可行的输入。这可能已经过去了,也可能没有过去。你可以尝试像tidy.sourceforge.net这样的软件来解决编码问题。
var info = xmlObj.getElementsByTagName("Song")[0];
var artistName = info.childNodes[j].attributes.getNamedItem('name').nodeValue;