首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP HTML编码

PHP HTML编码
EN

Stack Overflow用户
提问于 2013-10-12 14:07:02
回答 1查看 210关注 0票数 0

我试图解析一个HTML页面,但是编码破坏了我的结果。经过一些研究,我发现了一个非常流行的解决方案,使用utf8_encode()utf8_decode(),但它没有改变任何东西。在下面的行中,您可以检查我的代码和输出。

代码

代码语言:javascript
运行
复制
$str_html = $this->curlHelper->file_get_contents_curl($page);
$str_html = utf8_encode($str_html);

$dom = new DOMDocument();
$dom->resolveExternals = true;
$dom->substituteEntities = false;
@$dom->loadHTML($str_html);
$xpath = new DomXpath($dom);

(...)
$profile = array();
for ($index = 0; $index < $table_lines->length; $index++) {
    $desc = utf8_decode($table_lines->item($index)->firstChild->nodeValue);
}

输出

代码语言:javascript
运行
复制
Testar é bom

应该是

代码语言:javascript
运行
复制
Testar é bom

我试过的

  • htmlentities实体(): htmlentities($table_lines->item($index)->lastChild->nodeValue, ENT_NOQUOTES, ini_get('ISO-8859-1'), false);
  • htmlspecialchars() htmlspecialchars($table_lines->item($index)->lastChild->nodeValue, ENT_NOQUOTES, 'ISO- 8859-1', false);
  • 将我的文件的字符集更改为指定的here

更多的信息

  • 网站编码:<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-12 14:11:14

尝试在没有先前的utf8_decode()的情况下使用下面的内容

代码语言:javascript
运行
复制
mb_convert_encoding($str, 'ISO-8859-1', 'UTF-8');

或者,不要使用utf8_decode()并尝试将您的网站元更改为:

代码语言:javascript
运行
复制
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

  • mb_convert_encoding()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19335092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档