2

我正在使用 php 解析一个 xml 文档。

当我在浏览器中看到结果时,我得到以下字符:

ñ 而不是西班牙语 ñ

à 而不是 í

á 代替 á

ó 而不是 ó

é而不是é

我打算使用 str_replace 并将每个奇数字符替换为好字符,但遗憾的是,之前的模式仅偶尔发生,而且通常我有大量奇数字符 :(

xml标题是:

<?xml version="1.0" encoding="iso-8859-1"?>

但是,如果我将其更改为 utf-8,则根本不会打印..

我使用 simplexml_load_string 将 xml 作为字符串加载(来自类似的数据库)

你能给我一些关于如何解决这个问题的想法吗?

非常感谢

4

4 回答 4

2

您有 2 个选项:

a)header('Content-Type: text/html; charset=iso-8859-1');在您的 php 文件中的任何输出之前包含 a 。

b) 将输出转换为 utf-8$str = mb_convert_encoding($str, 'UTF-8', 'ISO-8859-1');

两者都应该做到这一点。

于 2012-10-25T15:15:59.287 回答
0

SimpleXML使用 UTF-8 编码存储的字符串。您可以使用带有 iso-8859-1 的 XML 文件,但如果您想使用这种编码打印 XML 值,则必须先使用utf8_decode

于 2012-10-25T15:10:15.120 回答
0

$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $string);

于 2012-10-25T15:10:41.190 回答
0
// new xml
$xml = new SimpleXMLElement('new.xml'); 

// Displaying XML in textual form
echo $xml->asXML();
于 2014-07-18T22:56:54.360 回答