php xml_parser UTF-8编码值被拆分

时间:2012-02-27 12:44:15

标签: php xml-parsing

我不确定这是否是正确的行为以及如何有效地处理它。我在php中定义了一个xml解析器,它看起来像这样:

$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData"); 
(....)   
function characterData($parser, $data){    print('<p>|' . $data . '|</p>');}

输入xml是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<fields><field name="address"><value>aą</value></field></fields>

输出如下:

|a|
|ą|

我期待它看起来像这样:

|aą|

为什么php将UTF-8编码的字符串拆分为单独的值?

1 个答案:

答案 0 :(得分:1)

答案在documentation

  

可以在每个片段内多次调用它(例如,对于非ASCII字符串)。

您的代码只需要能够处理它。