我有一个包含西班牙语数据的xml文档。该文件编码为ISO-8859-1。 Spnish中的特殊字符显示为数字,例如363,355,341等。所以有些单词看起来像:te363ricas,caracter355sticas等等。当我尝试解析数据时,我得到无效的字符错误。
我解析数据的php脚本需要utf8数据。我已经尝试使用utf8_encode(),mb_convert_encoding()和iconv()转换数据,但它们都没有工作。
如果我在VIM中看到该文件,那么这些特殊字符就会正确显示,但当我在终端中看到来自less命令的输出时,这些数字会显示而不是字符。
以下是从文件中提取的部分内容:
从VIM复制
Conocer las diferentes aproximacionesteóricasalenvejecimiento ysuscaracterísticasmásrelevantantes。 - Identificar lasaspectosmásintryantessobre los que planificar la actividaddeanimación。 - Desarrollar los conocimientos necesarios con los que debe contar el animador para desarrollar la actividad adecuadamente。
从LESS命令输出复制
Conocer las diferentes aproximaciones te363ricas al envejecimiento y sus caracter355sticas m341s relevantes。 - Identificar las aspectos m341s importantes sobre los que planificar la actividad de animaci363n。 - Desarrollar los conocimientos necesarios con los que debe contar el animador para desarrollar la actividad adecuadamente。
以下是代码段:
$fp = fopen('data.xml', 'r');
$parser = xml_parser_create();
xml_set_element_handler($parser, 'start_element', 'end_element');
xml-set_character_data_handler($parser, 'character_data');
while(!feof($fp)) {
$data = fgets($fp, 16384);
if(!xml_parse($parser, $data, feof($fp))) {
$error = 'xml file contains error on line '.xml_get_current_line_number($parser).
'with following problem '.xml_error_string(xml_get_error_code($parser));
die($error);
}
}
function start_element($parser, $name, $attrs) {
// something to do with the start element
}
function end_element($parser, $name, $attrs) {
// something to do with end element
}
function character_data($parser, $data) {
// something to do with the data
}
以下是示例xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<programas>
<programa id="1">
<objetivos><![CDATA[- Conocer las diferentes aproximaciones te363ricas al envejecimiento y sus caracter355sticas m341s relevantes.
- Identificar las aspectos m341s importantes sobre los que planificar la actividad de animaci363n.
- Desarrollar los conocimientos necesarios con los que debe contar el animador para desarrollar la actividad adecuadamente.]]></objetivos>
</programa>
</programas>
有什么想法吗?