对文档php编码的字符错误
我有一些html内容,它的所有文本都是波斯语! 我想通过方法DOMDocument::loadHTML($html)将此内容交给DOMDocument来做一些事情,然后通过DOMDocument::saveHTML()将其返回。。。但在显示字符时存在一个问题:-( 例如,“سلام”更改为“ØÙاÙÙ…”,甚至我也将脚本文件编码更改为UTF-8,但它不起作用对文档php编码的字符错误,php,character-encoding,domdocument,Php,Character Encoding,Domdocument,我有一些html内容,它的所有文本都是波斯语! 我想通过方法DOMDocument::loadHTML($html)将此内容交给DOMDocument来做一些事情,然后通过DOMDocument::saveHTML()将其返回。。。但在显示字符时存在一个问题:-( 例如,“سلام”更改为“ØÙاÙÙ…”,甚至我也将脚本文件编码更改为UTF-8,但它不起作用 <?php $html = "<html><meta charset='utf-8' /> سلام<
<?php
$html = "<html><meta charset='utf-8' /> سلام</html>";
$doc = new DOMDocument('1.0', 'utf-8');
$doc->loadHTML($html);
print $html; // output : سلام
print $doc->saveHTML(); // output : سلام
print $doc->saveHTML($doc->documentElement); // output : سÙاÙ
?>
告诉XML解析器正在读取的数据是UTF-8编码的:
<?php
// original input (unknown encoding)
$html = '<html>سلام</html>';
$doc = new DOMDocument();
// specify the input encoding
$doc->loadHTML('<?xml encoding="utf-8"?>' . $html);
// specify the output encoding
$doc->encoding = 'utf-8';
// output: <html><body><p>سلام</p></body></html>
print $doc->saveHTML($doc->documentElement);
编码='utf-8';
//输出:
打印$doc->saveHTML($doc->documentElement);
然后定义DOM编码本身(之前的定义是用于输入):
如果您没有使用libxml 2.7.7(从PHP>=5.4.0开始),请删除前导和尾随的
&
标记:
$doc->normalizeDocument();//删除前导和尾随标记(&T)
打印$doc->saveHTML($doc->documentElement);
玩得开心!HTML内容是UTF8吗?当你使用
创建…
函数时,你从哪里获得$HTML
呢?你需要确保你在每个组件上都使用UTF8,特别是如果你使用数据库,你需要将表中的数据设置为UTF8,并将数据库api设置为使用UTF8发送数据谢谢,不是吗我更新了我的问题并添加了一个代码…此代码没有任何内容!!在对其进行任何操作之前,您是否尝试过打印$html
?这可能会有帮助:[PHP-DomDocument-saveHTML未正确编码日语][1][1]:
$html = '<html>سلام</html>';
$doc = new DOMDocument();
$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$doc->encoding = 'UTF-8';
$doc->normalizeDocument(); //Remove leading and trailing <html> & <body> tags
print $doc->saveHTML($doc->documentElement);