9

ユーザーがコメントを投稿できるようにするためにCKEditorを使用しています。ユーザーはコメントボックスにUnicode文字を入れることもできます。

フォームを送信して $_POST["reply"] を確認すると、Unicode 文字が非常によく表示されます。トップページでも使用header('Content-type:text/html; charset=utf-8');したことがありますが、PHP DOMDocument で処理すると、すべての文字が読めなくなります。

$html_unicode = "xyz unicode data";
$html_data = '<body>'.$html_unicode . '</body>';
$dom = new DOMDocument();
$dom->loadHTML($html_data );

$elements = $dom->getElementsByTagName('body');

反響すると

echo $dom->textContent;

出力は次のようになります

§Ø³ÙبÙÙ ÙÙÚº ØºØ±ÙØ¨ ک٠آÙÛ ÙÛÙ

PHP DOMDocument を使用して適切な Unicode 文字を取得するにはどうすればよいですか。

4

4 に答える 4

19

これは私のために働いた:

$html_unicode = "xyz unicode data";
$html_data = '<body>'.$html_unicode . '</body>';

$dom = new DOMDocument();
$html_data  = mb_convert_encoding($html_data , 'HTML-ENTITIES', 'UTF-8'); // require mb_string
$dom->loadHTML($html_data);

$elements = $dom->getElementsByTagName('body');
于 2014-01-23T01:12:15.087 に答える
7

これを試して :)

<?php
    $html_unicode = "xyz unicode data";
    $html_data = '<body>'.$html_unicode . '</body>';
    $dom = new DOMDocument();
    $dom->loadHTML($html_data );

    $elements = $dom->getElementsByTagName('body');
    echo utf8_decode($dom->textContent);
?>
于 2013-03-29T13:39:00.750 に答える
1

神に感謝します。交換するだけで解決しました

$html_data = '<body>'.$html_unicode . '</body>';

$html_data = '<head><meta http-equiv="Content-Type" 
content="text/html; charset=utf-8">
</head><body>' . $html_unicode . '</body>';
于 2013-03-29T13:39:25.550 に答える