1
これが正しい動作で、効果的に対処する方法がわかりません。私は、PHPでのXMLパーサを定義しているし、それは次のようになります。php xml_parser UTF-8でエンコードされた値が分割されています
$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|
|ą|
I
|aą|
なぜPHPはUTF-8でエンコードされた文字列を別々の値に分割しますか?
どのように '$ data'を設定しますか? – spencercw
私はそれを設定しません、それはパーサーによってコールバック関数に渡されます。ここに説明があります:http://php.net/manual/en/function.xml-set-character-data-handler.php – camcam