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 ...
随机推荐
- PyCharm常用快捷键(pycharm使用教程)
pycharm常用快捷键与设置 pycharm高频率使用的快捷键 Ctrl+Shift+F10 运行当前的页面 Ctrl + / 注释(取消注释)选择的行 Ctrl+Shift+F 高级查找 Shif ...
- [b0034] python 归纳 (十九)_线程同步_条件变量
代码: # -*- coding: utf-8 -*- """ 学习线程同步,使用条件变量 逻辑: 生产消费者模型 一个有3个大小的产品库,一个生产者负责生产,一个消费者 ...
- [日常] 修复了grub引导问题
上周遇到的神奇引导问题竟然被鬼使神差的修复好了.因为我的电脑是64位的也就是x86_64架构,并且是UEFI模式下,但是之前装的grub一直是grub-传统,并且一直是i386-pc平台也就是32位的 ...
- arm-linux-gcc-5.4.0安装方法
首先需要下载arm-linux-gcc的安装包 这里提供一个5.4.0版本的安装包,如有需要自行下载. 下载链接:https://pan.baidu.com/s/1prpdmVNWBFzg79OXQs ...
- CodeForces - 1248D1 (思维+暴力)
题意 有一个括号序列,你可以选择两个位置i,j(i可以等于j),进行交换.使得最后的循环位置(i的数目)最大. 循环位置:i(0<=i<len),将前i个字符移到最后,得到的新序列是合法的 ...
- Java面试中遇到的坑【篇二面试干货】
俗话说早起的鸟儿有虫吃,现在临年关越来越近,有跳槽的想法的同事也都打算年前做好功课年后入职,所谓年终奖拿了,工作换的也是水到渠成. 说到这里想必有同学要说了,年底了放着年终奖不拿为何要跳槽呢?这个就要 ...
- 01 python的安装
下载3.7.0版本 然后点击 close 关闭 1-==>搜索输入“cmd”输入 “python -V”并回车. 出现版本说明安装成功.2==>>>> 是提示符3=== ...
- SpringCloud学习笔记(八、SpringCloud Bus)
目录: 什么是bus消息总栈 如何使用bus消息总栈 什么是bus消息总栈 SpringCloud Bus使用轻量的消息代理连接分布式系统的各个节点,可以用于系统状态变更时的广播(如配置变更)或其它管 ...
- Html学习之十九(表格与表单学习--邮箱注册页面设计)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ShuffleNet:
ShuffleNet算法详解 论文:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices ...