今天遇到件很恶心的事,某国外歌词网站提供的歌词在源文件里使用“&#数字;”格式的编码表示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

<

<

&lt;

小于号Less than

=

=

等于符号Equals sign

>

>

&gt;

大于号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

&nbsp;

空格Nonbreaking space

¡

¡

&iexcl;

Inverted exclamation

¢

¢

&cent;

货币分标志Cent sign

£

£

&pound;

英镑标志Pound sterling

¤

¤

&curren;

通用货币标志General currency sign

¥

¥

&yen;

日元标志Yen sign

¦

¦

&brvbar; or &brkbar;

断竖线Broken vertical bar

§

§

&sect;

分节号Section sign

¨

¨

&uml; or &die;

变音符号Umlaut

©

©

&copy;

版权标志Copyright

ª

ª

&ordf;

Feminine ordinal

«

«

&laquo;

Left angle quote, guillemet left

¬

¬

&not

Not sign

­

­

&shy;

Soft hyphen

®

®

&reg;

注册商标标志Registered trademark

¯

¯

&macr; or &hibar;

长音符号Macron accent

°

°

&deg;

度数标志Degree sign

±

±

&plusmn;

加或减Plus or minus

²

²

&sup2;

上标2 Superscript two

³

³

&sup3;

上标3 Superscript three

´

´

&acute;

尖重音符Acute accent

µ

µ

&micro;

Micro sign

&para;

Paragraph sign

·

·

&middot;

Middle dot

¸

¸

&cedil;

Cedilla

¹

¹

&sup1;

上标1 Superscript one

º

º

&ordm;

Masculine ordinal

»

»

&raquo;

Right angle quote, guillemet right

¼

¼

&frac14;

四分之一Fraction one-fourth

½

½

&frac12;

二分之一Fraction one-half

¾

¾

&frac34;

四分之三Fraction three-fourths

¿

¿

&iquest;

Inverted question mark

À

À

&Agrave;

Capital A, grave accent

Á

Á

&Aacute;

Capital A, acute accent

Â

Â

&Acirc;

Capital A, circumflex

Ã

Ã

&Atilde;

Capital A, tilde

Ä

Ä

&Auml;

Capital A, di?esis / umlaut

Å

Å

&Aring;

Capital A, ring

Æ

Æ

&AElig;

Capital AE ligature

Ç

Ç

&Ccedil;

Capital C, cedilla

È

È

&Egrave;

Capital E, grave accent

É

É

&Eacute;

Capital E, acute accent

Ê

Ê

&Ecirc;

Capital E, circumflex

Ë

Ë

&Euml;

Capital E, di?esis / umlaut

Ì

Ì

&Igrave;

Capital I, grave accent

Í

Í

&Iacute;

Capital I, acute accent

Î

Î

&Icirc;

Capital I, circumflex

Ï

Ï

&Iuml;

Capital I, di?esis / umlaut

Ð

Ð

&ETH;

Capital Eth, Icelandic

Ñ

Ñ

&Ntilde;

Capital N, tilde

Ò

Ò

&Ograve;

Capital O, grave accent

Ó

Ó

&Oacute;

Capital O, acute accent

Ô

Ô

&Ocirc;

Capital O, circumflex

Õ

Õ

&Otilde;

Capital O, tilde

Ö

Ö

&Ouml;

Capital O, di?esis / umlaut

×

×

&times;

乘号Multiply sign

Ø

Ø

&Oslash;

Capital O, slash

Ù

Ù

&Ugrave;

Capital U, grave accent

Ú

Ú

&Uacute;

Capital U, acute accent

Û

Û

&Ucirc;

Capital U, circumflex

Ü

Ü

&Uuml;

Capital U, di?esis / umlaut

Ý

Ý

&Yacute;

Capital Y, acute accent

Þ

Þ

&THORN;

Capital Thorn, Icelandic

ß

ß

&szlig;

Small sharp s, German sz

à

à

&agrave;

Small a, grave accent

á

á

&aacute;

Small a, acute accent

â

â

&acirc;

Small a, circumflex

ã

ã

&atilde;

Small a, tilde

ä

ä

&auml;

Small a, di?esis / umlaut

å

å

&aring;

Small a, ring

æ

æ

&aelig;

Small ae ligature

ç

ç

&ccedil;

Small c, cedilla

è

è

&egrave;

Small e, grave accent

é

é

&eacute;

Small e, acute accent

ê

ê

&ecirc;

Small e, circumflex

ë

ë

&euml;

Small e, di?esis / umlaut

ì

ì

&igrave;

Small i, grave accent

í

í

&iacute;

Small i, acute accent

î

î

&icirc;

Small i, circumflex

ï

ï

&iuml;

Small i, di?esis / umlaut

ð

ð

&eth;

Small eth, Icelandic

ñ

ñ

&ntilde;

Small n, tilde

ò

ò

&ograve;

Small o, grave accent

ó

ó

&oacute;

Small o, acute accent

ô

ô

&ocirc;

Small o, circumflex

õ

õ

&otilde;

Small o, tilde

ö

ö

&ouml;

Small o, di?esis / umlaut

÷

÷

&divide;

除号Division sign

ø

ø

&oslash;

Small o, slash

ù

ù

&ugrave;

Small u, grave accent

ú

ú

&uacute;

Small u, acute accent

û

û

&ucirc;

Small u, circumflex

ü

ü

&uuml;

Small u, di?esis / umlaut

ý

ý

&yacute;

Small y, acute accent

þ

þ

&thorn;

Small thorn, Icelandic

ÿ

ÿ

&yuml;

Small y, umlaut

html 实体编码转换成原字符相关推荐

  1. html设编码为中文简体,node.js将html字符实体编码转化成可识别的简体中文汉字

    node.js将html字符实体编码转化成可识别的简体中文汉字 2016-10-23    分类: nodejs笔记 node.js html 实体 编码 转化 汉字 中文 如果在node.js后台输 ...

  2. html标签转换字符类型,java把html标签字符转换成普通字符(反转换成html标签)

    package net.jasonjiang.web; import org.junit.Test; import org.springframework.web.util.HtmlUtils; /* ...

  3. UTF8编码转换成Unicode

    /************************************************************************************************* * ...

  4. Python:UTF-8编码转换成GBK编码

    2019独角兽企业重金招聘Python工程师标准>>> #!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #te ...

  5. Python 将字符串转换成单个字符;将单个字符合并成字符串

    # 将字符串转换成单个字符: s = "kkjjasd" # 1 for i in s:print(i)# 2 k = list(s) print(k)# 3 g = set(s) ...

  6. C#怎么将GBK编码转换成UTF-8编码?

    C#怎么将GBK编码转换成UTF-8编码? private void ChangeEncode(Encoding fromCoding,Encoding toCoding,string fileNam ...

  7. c语言实现补码(负数)转换成原码

    1.基础知识 (1)负数在计算机中是以补码的形式存储的: (2)有符号数的最高位为1表示为负数,为0表示正数: (3)反码:等于原码除过符号位,其余位取反: (4)补码:等于反码加1. 2.以-62为 ...

  8. UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符

    UNICODE工程中,由十六进制的unicode字符内码转换成unicode字符(双字节) 这段程序片段是根据"一种字符串转化为16进制显示的算法"(http://www.cppb ...

  9. 实体类转换成Xml格式实例

    最近在家公司实习,接触到了报关系统,有些海关报文是需要Xml格式来进行拼接的,所以就开始学起了将实体类转换成Xml格式的写法. 具体Xml是什么大家可以从这个链接点进去了解:Xml教程 我们在进行数据 ...

最新文章

  1. 三维基因组染色质环(loop)结构
  2. mysql多实例安装配置_MySQL多实例安装配置
  3. 从零开始 Mask RCNN 实战:基于 Win10 + Anaconda 的 Mask RCNN 环境搭建
  4. PP视频播放视频时如何关闭弹屏
  5. 透彻理解回文~单链表的逆序~
  6. oracle集群数据库事务配置,在 .NET中使用Oracle数据库事务-安装配置-Oracle频道-中国IT实验室...
  7. 通过资源名称得到资源id
  8. Unicode16 与 UTF-8编码之间的转换
  9. idea java jni 调试_使用 IntelliJ IDEA 和 IntelliJ Clion 进行 JNI 开发
  10. SourceTree的使用
  11. echo -e <<EOF $()三种操作的意义
  12. Nginx流媒体服务器搭建
  13. 安卓10终于来了,能吃上的果然只有这些手机!
  14. colorAccent,colorPrimary,colorPrimaryDark……来这里你就明白了
  15. Helio Protocol — 分布式代币借贷和流动性质押协议
  16. Nginx 配置子域名
  17. 量子计算数学基础,pauli 矩阵
  18. 德纳:Mecha《机甲变形》NFT元宇宙链游开发技术详情
  19. 临近服务直接发现和通信的授权与撤回
  20. Android SDK安装、环境变量配置

热门文章

  1. 二维码生成【前端,后端】
  2. 迪赛智慧数——其他图表(平行坐标图):家庭未来资产配置意愿
  3. 利用Calendar简洁制作万年历
  4. Linux x86 漏洞利用-Use-After-Free(UAF)-释放后可重用
  5. 9面阿里Java岗,最终定级P6拿P7工资,分享学习经验
  6. 给课题组师弟师妹们的开荒手册
  7. R3300L运行CoreELEC, EmuELEC和Armbian
  8. POJ 2431 Expedition(贪心+优先队列)
  9. matlab的多变量dmc源程序,基于MATLAB多变量DMC算法的仿真技术研究
  10. ANOMALY: use of REX.w is meaningless (default operand size is 64)idea无法集成git问题 已解决