我使用CKEditor让用户发表评论,用户也可以将unicode字符放在评论框中。
当我提交表格并检查$ _POST [“回复”]时,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字符。
答案 0 :(得分:11)
这对我有用:
$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');
答案 1 :(得分:4)
试试这个:)
<?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);
?>
答案 2 :(得分: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>';
答案 3 :(得分:0)
这适用于阿拉伯语