首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML::实体和编码撇号

HTML::实体和编码撇号
EN

Stack Overflow用户
提问于 2017-04-27 09:35:00
回答 1查看 710关注 0票数 0

我想做一些简单的事情,比如用它的实体名编码一个撇号,而不是它的(十六进制)十进制数。但是,HTML::实体似乎无法做到这一点。

代码语言:javascript
运行
复制
use warnings;
use strict;

use HTML::Entities qw(encode_entities);

my $char = "'";

print encode_entities($char);
# '

但是,在从实体到字符的导出散列中,撇号以apos的形式出现。

代码语言:javascript
运行
复制
print $HTML::Entities::entity2char{'apos'}
# '

为什么某些字符的HTML实体名称不可用?还是应该以某种方式强迫它?

EN

Stack Overflow用户

回答已采纳

发布于 2017-04-27 13:26:54

字符实体'仅在HTML5中引入,在HTML4和更早版本中无效。有些浏览器不能正确地表示它。

维基百科页面 simbabque在他的评论的链接如下

'或自定义实体引用的使用可能不受支持,并可能产生不可预测的结果。

HTML::Entities将其编码为'的安全路径,在标准的任何迭代中都是有效的。

该模块使用硬编码的散列%entity2char,并使用它构建%char2entity编码的逆映射。然后显式删除撇号的条目,以强制使用数字实体。

代码语言:javascript
运行
复制
delete $char2entity{"'"};  # only one-way decoding

(注释在原始代码中)

如果您愿意始终使用HTML5,那么我建议您使用HTML::HTML5::Entities,这是“HTML::Entities__的插入替代”,但提供了所有标准的HTML5实体,包括'

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43654004

复制
相关文章

相似问题

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