首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将特殊字符转换为HTML实体

将特殊字符转换为HTML实体
EN

Stack Overflow用户
提问于 2012-05-01 18:43:38
回答 2查看 7.1K关注 0票数 2

我有一个HTML文件,当我在记事本中查看它时,我可以看到以下内容:

代码语言:javascript
复制
<p><span>Copyright © 2008 Your Company Name</span>

请注意版权符号:

我加载HTML并对其执行以下操作:

代码语言:javascript
复制
$html = file_get_contents('test.html');
$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
file_put_contents('output.html', $html);

当我在记事本中再次查看html时,版权符号已经消失,并被一个空格所取代?!

我想用&copy;&#169替换版权符号。这不就是带有HTML-ENTITIES选项的mb_convert_encoding所做的事情吗?

这是我正在使用的test HTML file

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-01 18:55:52

您的测试HTML页面是用编码的,而不是用UTF8编码的;因此,当mb_convert_encoding看到版权字符(序数值169)时,它不知道如何处理它认为是无效的UTF8序列。

因此,在调用mb_convert_encoding时应指定正确的输入编码

代码语言:javascript
复制
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'ISO-8859-1');

或者,您可以使用类似于

代码语言:javascript
复制
$html = htmlentities($html, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1');

注意:我直接回答了你的问题,但你没有说你需要转换做什么。有可能有更好的方法来实现你的目标。

票数 8
EN

Stack Overflow用户

发布于 2012-05-01 18:53:05

如果您以UTF-8格式提供html,正确的操作肯定是:什么都不做。

代码语言:javascript
复制
<p><span>Copyright © 2008 Your Company Name</span>

是完全有效的html -只需查看此页面的页面源代码。

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

https://stackoverflow.com/questions/10396602

复制
相关文章

相似问题

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