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

 
相信很多人在刚接触前端或者中期时候总会遇到一些问题及瓶颈期,如学了一段时间没有方向感或者坚持不下去一个人学习枯燥乏味有问题也不知道怎么解决,对此我整理了一些资料 喜欢我的文章想与更多资深大牛一起讨论和学习的话 欢迎加入我的学习交流群907694362

html 实体编码转换成原字符的更多相关文章

  1. C# 将html实体编码转换到正常字符 & #40;格式

    获取到html实体编码字符后,通过正则获取其中的html实体编码,再统一强制转换到正常字符: 代码如下: string strformat = item.value7; //将html实体编码转换到正 ...

  2. java字符串转义,把&lt;&gt;转换成<>等字符【原】

    java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...

  3. C# DataTable转换成实体列表 与 实体列表转换成DataTable

    /// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...

  4. 转换编码,将Unicode编码转换成可以浏览的utf-8编码

    //转换编码,将Unicode编码转换成可以浏览的utf-8编码 public function unicodeDecode($name) { $pattern = '/([\w]+)|(\\\u([ ...

  5. 字符串js编码转换成实体html编码的方法(防范XSS攻击)

    js代码在html页面中转换成实体html编码的方法一: <!DOCTYPE html><html> <head>    <title>js代码转换成实 ...

  6. Base64字符保存图片,图片转换成Base64字符编码

    //文件转换成Base64编码 public static String getFileBase64Str(String filePath) throws IOException { String f ...

  7. gb2312提交的url编码转换成utf8的查询

    使用场景,当一网站是gb2312的编码向另一个是utf8的网站提交查询 如:http://search.chinayq.com/?key=%C0%D6%C6%F7 其中key为gb2312的url编码 ...

  8. [日常工作]虚拟机或者实体机转换成HyperV虚拟机的方法

    1.环境种类比较多, 有vb的 vm的还有人想直接用hyperV的 毕竟docker 是一个趋势, win10 上面 安装了hyperV 启用docker 角色之后 安装vb和vm的话 就没法启用CP ...

  9. [代码] 类似 YYText 将表情文本转换成表情字符

    一,经历 1> 由于工作需要,得把 UITextView 中的属性文本转换成普通文字,并将处理后的普通文字转换成属性文本. 2> 将属性文本转换成普通文字简单,可以调用属性文本的enume ...

随机推荐

  1. SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了?

    SAP MM 有了采购订单历史的PO行项目里的采购附加费不允许再改了? 正确答案是: 不允许,这是SAP标准逻辑. 那么问题来了!今日收到业务人员报说采购订单4300013979,完成了收货和IV, ...

  2. UIAlertView和UIAlertController

    UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...

  3. WC 个人项目 ( node.js 实现 )

    基于 node.js 的 wordCounter 个人项目 GitHub 项目地址:https://github.com/KofeChen/node.js-WordCounter 实现功能: 能够匹配 ...

  4. Linux—添加开机启动(服务/脚本)

    系统启动时需要加载的配置文件 /etc/profile./root/.bash_profile/etc/bashrc./root/.bashrc/etc/profile.d/*.sh./etc/pro ...

  5. Python中线程的使用

    并发:多个任务同一时间段进行 并行:多个任务同一时刻进行 线程的实现 线程模块 Python通过两个标准库_thread 和threading,提供对线程的支持 , threading对_thread ...

  6. ckeditor4.7配置图片上传

    ckeditor作为老牌的优秀在线编辑器,一直受到开发者的青睐. 这里我们讲解下 ckeditor最新版本4.7的图片上传配置. https://ckeditor.com/ 官方 进入下载 https ...

  7. appium---元素定位方法

    在我们做自动化测试的过程中,最基本的就是要会元素定位,也是自动化中的灵魂所在,如果一个自动化测试工程师说不会定位元素定位,那么肯定也不会做自动化了. 如何查看元素 小伙伴们都知道如果是web端可以通过 ...

  8. v-bind是是否需要绑定某一个类名

    v-bind 结合 css样式 结合标签显示是否要显示出某个样式 <p :class="['bg','dx', {'lin':falg}]">{{ msg }}< ...

  9. 浅谈JS函数防抖及应用场景

    [前言] 在工作中,我们可能碰到这样的问题: 用户在搜索的时候,在不停敲字,如果每敲一个字我们就要调一次接口,接口调用太频繁,给卡住了. 用户在阅读文章的时候,我们需要监听用户滚动到了哪个标题,但是每 ...

  10. 2018年蓝桥杯A组C/C++决赛题目

    2018年蓝桥杯A组C/C++决赛题目 2018年蓝桥杯A组C/C++决赛题解     1:三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5 ...