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 ...
随机推荐
- SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?
SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了? 正确答案是: 不允许,这是SAP标准逻辑. 那么问题来了!今日收到业务人员报说采购订单4300013979,完成了收货和IV, ...
- UIAlertView和UIAlertController
UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...
- WC 个人项目 ( node.js 实现 )
基于 node.js 的 wordCounter 个人项目 GitHub 项目地址:https://github.com/KofeChen/node.js-WordCounter 实现功能: 能够匹配 ...
- Linux—添加开机启动(服务/脚本)
系统启动时需要加载的配置文件 /etc/profile./root/.bash_profile/etc/bashrc./root/.bashrc/etc/profile.d/*.sh./etc/pro ...
- Python中线程的使用
并发:多个任务同一时间段进行 并行:多个任务同一时刻进行 线程的实现 线程模块 Python通过两个标准库_thread 和threading,提供对线程的支持 , threading对_thread ...
- ckeditor4.7配置图片上传
ckeditor作为老牌的优秀在线编辑器,一直受到开发者的青睐. 这里我们讲解下 ckeditor最新版本4.7的图片上传配置. https://ckeditor.com/ 官方 进入下载 https ...
- appium---元素定位方法
在我们做自动化测试的过程中,最基本的就是要会元素定位,也是自动化中的灵魂所在,如果一个自动化测试工程师说不会定位元素定位,那么肯定也不会做自动化了. 如何查看元素 小伙伴们都知道如果是web端可以通过 ...
- v-bind是是否需要绑定某一个类名
v-bind 结合 css样式 结合标签显示是否要显示出某个样式 <p :class="['bg','dx', {'lin':falg}]">{{ msg }}< ...
- 浅谈JS函数防抖及应用场景
[前言] 在工作中,我们可能碰到这样的问题: 用户在搜索的时候,在不停敲字,如果每敲一个字我们就要调一次接口,接口调用太频繁,给卡住了. 用户在阅读文章的时候,我们需要监听用户滚动到了哪个标题,但是每 ...
- 2018年蓝桥杯A组C/C++决赛题目
2018年蓝桥杯A组C/C++决赛题目 2018年蓝桥杯A组C/C++决赛题解 1:三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5 ...