html 实体编码转换成原字符
今天遇到件很恶心的事,某国外歌词网站提供的歌词在源文件里使用“&#数字;”格式的编码表示abcd....原来小菜我实在才疏学浅不知此为何物,于是特有的搜索引擎控,搜之。片刻得解,此乃html实体编码。平时我们见的 是html的实体字符,其实在后面 还对应一个实体编码。编码表转一个GG/MM的。见附表。
本人试着将编码通过html_entity_decode转换为字符,却发现公司里用的php4,此函数undefined。没办法只好请教师傅终于找到了答案。
这些编码的格式“&#十六进制/十进制”,是将字符对应的ASCII码转成10/16进制加上&#;之后形成。因此我们只要将&#后面的数值转换成ASCII码(十进制),然后找到然后就能找到那个字符。这里有师傅送的一个函数(出处不明)
functionunhtmlentities($string)
{
// replace numeric entities
$string = preg_replace('/&#x([0-9a-f]+);/ei', 'chr(hexdec("\\1"))', $string); //针对十六进制
//hexdec()返回与 hex_string 参数所表示的十六进制数等值的的十进制数
//chr返回ascii码对应的字符
$string =preg_replace('~&#([0-9]+);~e', 'chr(\\1)',$string); //针对十进制
echo $string;
// replace literal entities
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
/get_html_translation_table 返回 htmlentities() 和 htmlspecialchars() 函数使用的翻译表,HTML_ENTITIES/翻译所有需要 URL 编码的字符,以便正确地显示在网页上
$trans_tbl = array_flip($trans_tbl);//反转翻译表的键名和值 值做键名
return strtr($string, $trans_tbl); //返回$string中字符在$trans_tbl中对应的特定字符
}
// 在preg_replace的正则表达式,可以使用e修正符:使用此修正符preg_replace()在替换字符串中对逆向引用做正常替 换,将其作为PHP代码求值(而非简单的字符串),将用其结果替换所搜索字符串。这就是在替换字符串里可以时使用php函数的原因。
附录
HTML实体字
|
字符 |
十进制字符编号 |
实体名字 |
说明 |
|
— |
� |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
|
— |
制表符Horizontal tab |
|
— |
|
— |
换行Line feed |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
|
— |
回车Carriage Return |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
— |
 |
— |
未使用Unused |
|
|
— |
Space |
|
|
! |
! |
— |
惊叹号Exclamation mark |
|
“ |
" |
" |
双引号Quotation mark |
|
# |
# |
— |
数字标志Number sign |
|
$ |
$ |
— |
美元标志Dollar sign |
|
% |
% |
— |
百分号Percent sign |
|
& |
& |
& |
Ampersand |
|
‘ |
' |
— |
单引号Apostrophe |
|
( |
( |
— |
小括号左边部分Left parenthesis |
|
) |
) |
— |
小括号右边部分Right parenthesis |
|
* |
* |
— |
星号Asterisk |
|
+ |
+ |
— |
加号Plus sign |
|
, |
, |
— |
逗号Comma |
|
- |
- |
— |
连字号Hyphen |
|
. |
. |
— |
句号Period (fullstop) |
|
/ |
/ |
— |
斜杠Solidus (slash) |
|
0 |
0 |
— |
数字0 Digit 0 |
|
1 |
1 |
— |
数字1 Digit 1 |
|
2 |
2 |
— |
数字2 Digit 2 |
|
3 |
3 |
— |
数字3 Digit 3 |
|
4 |
4 |
— |
数字4 Digit 4 |
|
5 |
5 |
— |
数字5 Digit 5 |
|
6 |
6 |
— |
数字6 Digit 6 |
|
7 |
7 |
— |
数字7 Digit 7 |
|
;8 |
8 |
— |
数字8 Digit 8 |
|
9 |
9 |
— |
数字9 Digit 9 |
|
: |
: |
— |
冒号Colon |
|
; |
; |
— |
分号Semicolon |
|
< |
< |
< |
小于号Less than |
|
= |
= |
— |
等于符号Equals sign |
|
> |
> |
> |
大于号Greater than |
|
? |
? |
— |
问号Question mark |
|
@ |
@ |
— |
Commercial at |
|
A |
A |
— |
大写A Capital A |
|
B |
B |
— |
大写B Capital B |
|
C |
C |
— |
大写C Capital C |
|
D |
D |
— |
大写D Capital D |
|
E |
E |
— |
大写E Capital E |
|
F |
F |
— |
大写F Capital F |
|
G |
G |
— |
大写G Capital G |
|
H |
H |
— |
大写H Capital H |
|
I |
I |
— |
大写J Capital I |
|
J |
;J |
— |
大写K Capital J |
|
K |
K |
— |
大写L Capital K |
|
L |
L |
— |
大写K Capital L |
|
M |
M |
— |
大写M Capital M |
|
N |
N |
— |
大写N Capital N |
|
O |
O |
— |
大写O Capital O |
|
P |
P |
— |
大写P Capital P |
|
Q |
Q |
— |
大写Q Capital Q |
|
R |
R |
— |
大写R Capital R |
|
S |
S |
— |
大写S Capital S |
|
T |
T |
— |
大写T Capital T |
|
U |
U |
— |
大写U Capital U |
|
V |
V |
— |
大写V Capital V |
|
W |
W |
— |
大写W Capital W |
|
X |
X |
— |
大写X Capital X |
|
Y |
Y |
— |
大写Y Capital Y |
|
Z |
Z |
— |
大写Z Capital Z |
|
[ |
[ |
--- |
中括号左边部分Left square bracket |
|
\ |
\ |
--- |
反斜杠Reverse solidus (backslash) |
|
] |
] |
— |
中括号右边部分Right square bracket |
|
^ |
^ |
— |
Caret |
|
_ |
_ |
— |
下划线Horizontal bar (underscore) |
|
` |
` |
— |
尖重音符Acute accent |
|
a |
a |
— |
小写a Small a |
|
b |
b |
— |
小写b Small b |
|
c |
c |
— |
小写c Small c |
|
d |
d |
— |
小写d Small d |
|
e |
e |
— |
小写e Small e |
|
f |
f |
— |
小写f Small f |
|
g |
g |
— |
小写g Small g |
|
h |
h |
— |
小写h Small h |
|
i |
i |
— |
小写i Small i |
|
j |
j |
— |
小写j Small j |
|
k |
k |
— |
小写k Small k |
|
l |
l |
— |
小写l Small l |
|
m |
m |
— |
小写m Small m |
|
n |
n |
— |
小写n Small n |
|
o |
o |
— |
小写o Small o |
|
p |
p |
— |
小写p Small p |
|
q |
q |
— |
小写q Small q |
|
r |
r |
— |
小写r Small r |
|
s |
s |
— |
小写s Small s |
|
t |
t |
— |
小写t Small t |
|
u |
u |
— |
小写u Small u |
|
v |
v |
— |
小写v Small v |
|
w |
w |
— |
小写w Small w |
|
x |
x |
— |
小写x Small x |
|
y |
y |
— |
小写y Small y |
|
z |
z |
— |
小写z Small z |
|
{ |
{ |
— |
大括号左边部分Left curly brace |
|
| |
| |
— |
竖线Vertical bar |
|
} |
} |
— |
大括号右边部分Right curly brace |
|
~ |
~ |
— |
Tilde |
|
— |
|
— |
未使用Unused |
|
|
|
空格Nonbreaking space |
|
|
¡ |
¡ |
¡ |
Inverted exclamation |
|
¢ |
¢ |
¢ |
货币分标志Cent sign |
|
£ |
£ |
£ |
英镑标志Pound sterling |
|
¤ |
¤ |
¤ |
通用货币标志General currency sign |
|
¥ |
¥ |
¥ |
日元标志Yen sign |
|
¦ |
¦ |
¦ or &brkbar; |
断竖线Broken vertical bar |
|
§ |
§ |
§ |
分节号Section sign |
|
¨ |
¨ |
¨ or ¨ |
变音符号Umlaut |
|
© |
© |
© |
版权标志Copyright |
|
ª |
ª |
ª |
Feminine ordinal |
|
« |
« |
« |
Left angle quote, guillemet left |
|
¬ |
¬ |
¬ |
Not sign |
|
|
­ |
Soft hyphen |
|
|
® |
® |
® |
注册商标标志Registered trademark |
|
¯ |
¯ |
¯ or &hibar; |
长音符号Macron accent |
|
° |
° |
° |
度数标志Degree sign |
|
± |
± |
± |
加或减Plus or minus |
|
² |
² |
² |
上标2 Superscript two |
|
³ |
³ |
³ |
上标3 Superscript three |
|
´ |
´ |
´ |
尖重音符Acute accent |
|
µ |
µ |
µ |
Micro sign |
|
¶ |
¶ |
¶ |
Paragraph sign |
|
· |
· |
· |
Middle dot |
|
¸ |
¸ |
¸ |
Cedilla |
|
¹ |
¹ |
¹ |
上标1 Superscript one |
|
º |
º |
º |
Masculine ordinal |
|
» |
» |
» |
Right angle quote, guillemet right |
|
¼ |
¼ |
¼ |
四分之一Fraction one-fourth |
|
½ |
½ |
½ |
二分之一Fraction one-half |
|
¾ |
¾ |
¾ |
四分之三Fraction three-fourths |
|
¿ |
¿ |
¿ |
Inverted question mark |
|
À |
À |
À |
Capital A, grave accent |
|
Á |
Á |
Á |
Capital A, acute accent |
|
 |
 |
 |
Capital A, circumflex |
|
à |
à |
à |
Capital A, tilde |
|
Ä |
Ä |
Ä |
Capital A, di?esis / umlaut |
|
Å |
Å |
Å |
Capital A, ring |
|
Æ |
Æ |
Æ |
Capital AE ligature |
|
Ç |
Ç |
Ç |
Capital C, cedilla |
|
È |
È |
È |
Capital E, grave accent |
|
É |
É |
É |
Capital E, acute accent |
|
Ê |
Ê |
Ê |
Capital E, circumflex |
|
Ë |
Ë |
Ë |
Capital E, di?esis / umlaut |
|
Ì |
Ì |
Ì |
Capital I, grave accent |
|
Í |
Í |
Í |
Capital I, acute accent |
|
Î |
Î |
Î |
Capital I, circumflex |
|
Ï |
Ï |
Ï |
Capital I, di?esis / umlaut |
|
Ð |
Ð |
Ð |
Capital Eth, Icelandic |
|
Ñ |
Ñ |
Ñ |
Capital N, tilde |
|
Ò |
Ò |
Ò |
Capital O, grave accent |
|
Ó |
Ó |
Ó |
Capital O, acute accent |
|
Ô |
Ô |
Ô |
Capital O, circumflex |
|
Õ |
Õ |
Õ |
Capital O, tilde |
|
Ö |
Ö |
Ö |
Capital O, di?esis / umlaut |
|
× |
× |
× |
乘号Multiply sign |
|
Ø |
Ø |
Ø |
Capital O, slash |
|
Ù |
Ù |
Ù |
Capital U, grave accent |
|
Ú |
Ú |
Ú |
Capital U, acute accent |
|
Û |
Û |
Û |
Capital U, circumflex |
|
Ü |
Ü |
Ü |
Capital U, di?esis / umlaut |
|
Ý |
Ý |
Ý |
Capital Y, acute accent |
|
Þ |
Þ |
Þ |
Capital Thorn, Icelandic |
|
ß |
ß |
ß |
Small sharp s, German sz |
|
à |
à |
à |
Small a, grave accent |
|
á |
á |
á |
Small a, acute accent |
|
â |
â |
â |
Small a, circumflex |
|
ã |
ã |
ã |
Small a, tilde |
|
ä |
ä |
ä |
Small a, di?esis / umlaut |
|
å |
å |
å |
Small a, ring |
|
æ |
æ |
æ |
Small ae ligature |
|
ç |
ç |
ç |
Small c, cedilla |
|
è |
è |
è |
Small e, grave accent |
|
é |
é |
é |
Small e, acute accent |
|
ê |
ê |
ê |
Small e, circumflex |
|
ë |
ë |
ë |
Small e, di?esis / umlaut |
|
ì |
ì |
ì |
Small i, grave accent |
|
í |
í |
í |
Small i, acute accent |
|
î |
î |
î |
Small i, circumflex |
|
ï |
ï |
ï |
Small i, di?esis / umlaut |
|
ð |
ð |
ð |
Small eth, Icelandic |
|
ñ |
ñ |
ñ |
Small n, tilde |
|
ò |
ò |
ò |
Small o, grave accent |
|
ó |
ó |
ó |
Small o, acute accent |
|
ô |
ô |
ô |
Small o, circumflex |
|
õ |
õ |
õ |
Small o, tilde |
|
ö |
ö |
ö |
Small o, di?esis / umlaut |
|
÷ |
÷ |
÷ |
除号Division sign |
|
ø |
ø |
ø |
Small o, slash |
|
ù |
ù |
ù |
Small u, grave accent |
|
ú |
ú |
ú |
Small u, acute accent |
|
û |
û |
û |
Small u, circumflex |
|
ü |
ü |
ü |
Small u, di?esis / umlaut |
|
ý |
ý |
ý |
Small y, acute accent |
|
þ |
þ |
þ |
Small thorn, Icelandic |
|
ÿ |
ÿ |
ÿ |
Small y, umlaut |
html 实体编码转换成原字符的更多相关文章
- C# 将html实体编码转换到正常字符 & #40;格式
获取到html实体编码字符后,通过正则获取其中的html实体编码,再统一强制转换到正常字符: 代码如下: string strformat = item.value7; //将html实体编码转换到正 ...
- java字符串转义,把<>转换成<>等字符【原】
java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...
- C# DataTable转换成实体列表 与 实体列表转换成DataTable
/// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...
- 转换编码,将Unicode编码转换成可以浏览的utf-8编码
//转换编码,将Unicode编码转换成可以浏览的utf-8编码 public function unicodeDecode($name) { $pattern = '/([\w]+)|(\\\u([ ...
- 字符串js编码转换成实体html编码的方法(防范XSS攻击)
js代码在html页面中转换成实体html编码的方法一: <!DOCTYPE html><html> <head> <title>js代码转换成实 ...
- Base64字符保存图片,图片转换成Base64字符编码
//文件转换成Base64编码 public static String getFileBase64Str(String filePath) throws IOException { String f ...
- gb2312提交的url编码转换成utf8的查询
使用场景,当一网站是gb2312的编码向另一个是utf8的网站提交查询 如:http://search.chinayq.com/?key=%C0%D6%C6%F7 其中key为gb2312的url编码 ...
- [日常工作]虚拟机或者实体机转换成HyperV虚拟机的方法
1.环境种类比较多, 有vb的 vm的还有人想直接用hyperV的 毕竟docker 是一个趋势, win10 上面 安装了hyperV 启用docker 角色之后 安装vb和vm的话 就没法启用CP ...
- [代码] 类似 YYText 将表情文本转换成表情字符
一,经历 1> 由于工作需要,得把 UITextView 中的属性文本转换成普通文字,并将处理后的普通文字转换成属性文本. 2> 将属性文本转换成普通文字简单,可以调用属性文本的enume ...
随机推荐
- Linux中raid磁盘阵列
一.磁盘阵列(Redundant Arrays of Independent Disks,RAID) 有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡 ...
- 一语点醒技术人:你不是 Google(转载)
转载链接:https://www.infoq.cn/article/2017/06/U-no-Google 在为问题寻找解决方案时要先充分了解问题本身,而不是一味地盲目崇拜那些巨头公司.Ozan On ...
- [b0028] python 归纳 (十三)_队列Queue在多线程中使用
# -*- coding: UTF-8 -*- """ 多线程同时读队列 总结: 1. 会阻塞 if self._jobq.qsize() > 0 进入逻辑,此时被 ...
- [20190523]修改参数后一些细节注意.txt
[20190523]修改参数后一些细节注意.txt --//昨天远程给别人解决一个小问题,就是配置使用hugepage.一些细节必须注意,通过例子说明问题. 1.环境:# cat /proc/vers ...
- nginx典型官方模块解释
模块名称 作用 语法 默认 配置位置 配置举例 结果验证 备注 1 --with-http_stub_status_module 监控Nginx的服务器连接状态 stub_status serve ...
- 9.Java基础_for/while/do-while循环
/* for循环(同C++) 初始化变量的作用域为循环体 出了循环体,初始化的局部变量消失 for(初始化;条件判断;条件控制){ 循环体; } while循环 while(条件判断){ 循环体; } ...
- 读取本地文件转化成MultipartFile
介绍 现在有个上传文件功能,需要将文件上传到oss上,但是文件有点多,于是使用接口进行上传.但是需要上传文件转换为MultipartFile类型文件进行上传. 主要代码 添加pom文件 <dep ...
- LG1393 动态逆序对
问题描述 LG1393 题解 本题可以使用\(\mathrm{CDQ}\)分治完成. 二维偏序 根据偏序的定义,逆序对是一个二维偏序,但这个二维偏序比较特殊: \(i>j,a_i<a_j\ ...
- NOIP模拟赛 迷路
题目描述 Description \(FYH\) 在 \(ns\) 星系迷路了,情急之下,他找到了你.现在,解救 \(FYH\) 的重任就落在了你的肩上了. \(ns\) 星系有 \(n\) 颗星球, ...
- 在Ubuntu18.04.2LTS上遇到的问题汇总
在Ubuntu18.04.2LTS上遇到的问题汇总 一.前言 在新版的Ubuntu上在桌面右键没有新建文档的按钮着实让人难以接受,其实只要稍微理解就能明白设计者的良苦用心,因为这样便于扩展性和自定 ...