php xml_解析器UTF-8编码值被拆分

php xml_解析器UTF-8编码值被拆分,php,xml-parsing,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_pars

我不确定这是否是正确的行为,以及如何有效地处理它。我在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 version="1.0" encoding="UTF-8"?>
<fields><field name="address"><value>aą</value></field></fields>
|a|
|ą|
|aą|
我希望它看起来像这样:

$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 version="1.0" encoding="UTF-8"?>
<fields><field name="address"><value>aą</value></field></fields>
|a|
|ą|
|aą|
为什么php将UTF-8编码的字符串拆分为单独的值???

答案如下:

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

您的代码只需要能够处理这个问题。

答案如下:

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


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

我没有设置它,它是由解析器传递给回调函数的。这里有一个描述:我没有设置它,它是由解析器传递给回调函数的。以下是描述: