我正在使用php解析xml文档。
当我在浏览器中看到结果时,我得到以下字符:
Ã而不是西班牙语ñ
Ã而不是í
á而不是á
³而不是ó
é而不是é
我打算使用str_replace并将每个奇怪的字符替换为好的字符,但遗憾的是之前的模式只是偶尔发生,而且一般来说我有很多奇数字符:(
xml标题是:
<?xml version="1.0" encoding="iso-8859-1"?>
但如果我把它改成utf-8就不会打印出来..
我使用simplexml_load_string(来自数据库)将xml加载为字符串
您能否告诉我如何解决这个问题?
非常感谢
答案 0 :(得分:2)
您有两个选择:
a)在php文件中的任何输出之前包含header('Content-Type: text/html; charset=iso-8859-1');
。
b)用$str = mb_convert_encoding($str, 'UTF-8', 'ISO-8859-1');
两者都应该做到这一点。
答案 1 :(得分:0)
SimpleXML
使用UTF-8编码存储的字符串。您可以将XML文件与iso-8859-1一起使用,但如果要使用此编码打印XML值,则必须先使用utf8_decode
。
答案 2 :(得分:0)
$ string = preg_replace('/ [\ x00- \ x1F \ x80- \ xFF] /','',$ string);
答案 3 :(得分:0)
// new xml
$xml = new SimpleXMLElement('new.xml');
// Displaying XML in textual form
echo $xml->asXML();