0

複雑な xml からの画像とテキストの解析に関する以前の質問に加えて、それに関する唯一の問題は、正しいエンコーディングを取得できないことです。テキストはギリシャ語で、xmlファイルにはutf-8エンコーディングがあります。これは、xml を解析するコードです。

$xml = simplexml_load_file('myfile.xml');

$descriptions = $xml->xpath('//item/description');

foreach ( $descriptions as $description_node ) {

    $description_dom = new DOMDocument();
    $description_dom->loadHTML( (string)$description_node );

    $description_sxml = simplexml_import_dom( $description_dom );

    $imgs = $description_sxml->xpath('//img');
    $text = $description_sxml->xpath('//div');

    foreach($imgs as $image){

    echo (string)$image['src'];     
       }

    foreach($text as $t){
    
        echo (string)$t;
       }
    }

i の場合echo $description_node、テキストは問題ないように見えます が、取得$description_domした後は次のようになります 。私は何を間違っていますか?simplexml_import_domÏε ιÏÎ»Î±Î¼Î¹ÎºÎ­Ï ÎºÎ¿Î¹Î½ÏÏηÏεÏ.mb_convert_encodingýÃÂñù" ÃÂ

4

3 に答える 3

1

解決策: の後$description_dom = new DOMDocument();、このコードを配置しました。

$description_html = mb_convert_encoding($description_node, 'HTML-ENTITIES', "UTF-8");

に変換html entitiesするだけUTF-8です。それ以外の

$description_dom->loadHTML( (string)$description_node );

今、変換されたhtmlをロードします

$description_dom->loadHTML( (string)$description_html );
于 2013-01-15T22:31:08.127 に答える
0

何も変換しないでください..適切な宣言で印刷するだけです

header("Content-Type: text/plain; charset=utf-8");

これがあなたがする必要があるすべてです。ファイルの先頭でそれを行います。

于 2013-01-15T11:23:35.177 に答える
0

テキストを表示する HTML ページの head にこれを追加します。

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

これにより、文字が適切にレンダリングされます。

于 2013-01-15T11:16:43.247 に答える