HTML字符实体转换,(10进制实体,16进制实体)

首先阐述一下什么是字符实体,类似这种类型的都可以成为字符实体(字符实体编号)

&name;
字符实体转换
字符实体转换

其中:以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字;

具体阐述标准请查看知乎大神解析:(以下为链接)

https://www.zhihu.com/question/21390312

解析主要内容摘抄如下(以防丢失)】:

================================start=============================================

 

作者:梁海
链接:https://www.zhihu.com/question/21390312/answer/18091465
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

形如——

&name;
&#dddd;
&#xhhhh;

——的一串字符是 HTML、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。

以 HTML 为例,这三种转义序列都称作 character reference:

  • 第一种是 character entity reference,后接预先定义的 entity 名称,而 entity 声明了自身指代的字符。
  • 后两种是 numeric character reference(NCR),数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字。

从 HTML 4 开始,NCR 以 Unicode 为准,与文档编码无关。

「中国」二字分别是 Unicode 字符 U+4E2D 和 U+56FD,十六进制表示的 code point 数值「4E2D」和「56FD」就是十进制的「20013」和「22269」。所以——

中国
中国

——这两种 NCR 写法都会在显示时转换为「中国」二字。

NCR 可以用于转义任何 Unicode 字符,而 character entity reference 很受限,参见 HTML 4 和 HTML5 中已有定义的字符列表:

================================end=============================================

 

【字符转换】

Java类中的转换方式如下:

【说明】:StringEscapeUtils引用自org.apache.commons.lang.StringEscapeUtils,为Apache官方的common.lang包;

StringEscapeUtils.unescapeHtml("字符实体转换")

转换结果为:字符实体转换

js中转换方式如下:

function changeDum(name){
    if(name != ""){ 
	name = name.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"&#x$2;")});
    }
    return name;
}

在线转换地址:

https://www.qqxiuzi.cn/bianma/zifushiti.php

函数的参数名即为转换后的【字符实体编号】,名称可能不标准。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值