用PHP解析xml如何处理这样的字符
我正在使用php解析一个xml文档 当我在浏览器中看到结果时,我得到以下字符: ñ而不是西班牙语 Ã而不是 Ó而非” ó而非ó é而非 我本来打算用stru替换,并用每个奇怪的字符替换好的字符,但遗憾的是,以前的模式只是偶尔出现,一般来说,我收集了很多奇怪的字符:( xml标题是:用PHP解析xml如何处理这样的字符,php,xml,encoding,xml-parsing,Php,Xml,Encoding,Xml Parsing,我正在使用php解析一个xml文档 当我在浏览器中看到结果时,我得到以下字符: ñ而不是西班牙语 Ã而不是 Ó而非” ó而非ó é而非 我本来打算用stru替换,并用每个奇怪的字符替换好的字符,但遗憾的是,以前的模式只是偶尔出现,一般来说,我收集了很多奇怪的字符:( xml标题是: <?xml version="1.0" encoding="iso-8859-1"?> 但是如果我把它改成utf-8,它就不会被打印了 我用simplexml\u load\u字符串(来
<?xml version="1.0" encoding="iso-8859-1"?>
但是如果我把它改成utf-8,它就不会被打印了
我用simplexml\u load\u字符串(来自这样的数据库)将xml作为字符串加载
你能告诉我怎么解决这个问题吗
非常感谢SimpleXML使用UTF-8对存储的字符串进行编码。您可以使用iso-8859-1的XML文件,但是如果您想用这种编码打印XML值,您必须在之前使用utf8解码。$string=preg\u replace('/[\x00-\x1F\x80-\xFF]/','$string);您有两个选项: a) 包括
标题('Content-Type:text/html;charset=iso-8859-1')在php文件中的任何输出之前
b) 使用$str=mb_convert_编码($str,'utf-8','ISO-8859-1')将输出转换为utf-8代码>
两者都应该起作用。我对PHP显示这些字符的理解正确吗?HTML输出是否设置为UTF?这意味着UTF-8数据被误解为iso-8859-1。。您需要在浏览器中设置utf-8内容类型标题,请尝试在“查看->字符编码”菜单下更改字符编码。一旦找到正确显示的数据,请在代码中使用。数据已经在utf-8中,被误解为iso-8859-1或类似文件。如果你把看作ISO-8859-1,那就是C3B1
,如果你用utf-8解释C3B1
,你会得到ñ
。是的!对我喜欢mb_转换_编码;)
// new xml
$xml = new SimpleXMLElement('new.xml');
// Displaying XML in textual form
echo $xml->asXML();