1. 程式人生 > >html 實體編碼轉換成原字元

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

;

&#59;

分號Semicolon

<

&#60;

&lt;

小於號Less than

=

&#61;

等於符號Equals sign

>

&#62;

&gt;

大於號Greater than

?

&#63;

問號Question mark

@

&#64;

Commercial at

A

&#65;

大寫A Capital A

B

&#66;

大寫B Capital B

C

&#67;

大寫C Capital C

D

&#68;

大寫D Capital D

E

&#69;

大寫E Capital E

F

&#70;

大寫F Capital F

G

&#71;

大寫G Capital G

H

&#72;

大寫H Capital H

I

&#73;

大寫J Capital I

J

;&#74;

大寫K Capital J

K

&#75;

大寫L Capital K

L

&#76;

大寫K Capital L

M

&#77;

相關推薦

html 實體編碼轉換字元

今天遇到件很噁心的事,某國外歌詞網站提供的歌詞在原始檔裡使用“&#數字;”格式的編碼表示abcd....原來小菜我實在才疏學淺不知此為何物,於是利用八零後特有的搜尋引擎控,搜之。片刻得解,此乃html實體編碼。平時我們見的&nbsp;是html的實體字元,其實在後面還對應一個實體編碼。編碼

html 中,將中文轉換html實體再輸出 即: 開頭的html實體編碼

將中文轉換為 html實體再輸出 編碼 /** * 可將中文轉換成 "&#" 開頭的html實體編碼 * * * @param str * @return */ public static String encode(String str) { cha

【python】通過LibreOffice把html文件轉換docx文件

去掉 less 通過 文件 bre eof html ice 要去 通過下面的一行命令,把test.html轉換成test.docx soffice --invisible --headless --convert-to docx:"Office Open XML Tex

python在gbk編碼轉換utf-8時亂碼問題

例項網站:http://www.ip138.com/ips138.asp?ip=124.24.13.241&action=4 #專案爬蟲,環境python-下載匯入requests、lxml包 #url時是查ip位置的介面 url_1='http://www.ip1

【131】Java把\u開頭的Unicode編碼轉換漢字

最近工作中遇到需要呼叫第三方介面的需求。第三方介面返回的字串中,會把中文轉義成 \u + Unicode 的形式。因此,我需要再把 \u + Unicode 轉換成漢字。 這裡,我們需要認識到 Java 程式碼對於 \u 字元處理的內外有別。如果是編寫程式的時候

中文轉換Unicode編碼和Unicode編碼轉換中文,Java程式碼實現

 import java.util.Properties; public class Test { public static void main(String[] args

Java把Html格式文字轉換純文字的問題

工作上需要把一段html內容轉換成純文字。 最簡單的辦法,是用正則表示式把全部的標籤替換成空字串,然後把被轉義的內容(尖括號,空格等)轉回來。這裡用到了StringEscapeUtils,來自Apache Commons Lang library (commons-lang

自動將visual stdio建立的檔案從gb2312編碼轉換utf8編碼

cocos2d-x是一個不錯的手機遊戲框架,不過由於在中文的windows系統下使用visual stdio2008預設建立的類檔案,包括.h和.cpp,其檔案編碼都是gb2312的。當將這些檔案在cygwin上用ndk編譯時,雖然編譯沒問題,但其中的中文在讀取的時候會出現

一個很簡單的工具類,實體bean轉換map

簡單的實體類: package cn.ibm.com.mytest; public class Human {     private Integer hid;     private String hname;          public Integer getHid

JAVA 阿拉伯數字轉換羅馬字元序號和ASCII碼錶

/** * 阿拉伯數字轉羅馬數字(3999及以下) * @param num 被轉換的阿拉伯數字 * @return 轉換後的羅馬數字 */ public

使用 Java 將中文字元轉換 Unicode 編碼

這兩天操作XML使用到了Jdom,在建立XML檔案並輸出到硬碟的時候遇到一箇中文編碼的問題:Jdom預設輸出的XML編碼是UTF-8,但是文件中如果出現中文字元那麼該中文字元就會變成亂碼,造成XML檔案無法被正確解析。 UTF -8應該是可以用來表示中文的吧?我不知道這是不

PHP htmlspecialchars() 函式把預定義的字元轉換HTML 實體

htmlspecialchars() 定義:把預定義的字元轉換為 HTML 實體 語法:htmlspecialchars(string,flags,character-set,double_encode); 例項: <?php $str = "aa

php htmlspecialchars_decode()函式將一些HTML實體轉換字元

開發十年,就只剩下這套架構體系了! >>>   

CHM文件命令轉換html

bat windows eight 命令 路徑名 font 通過 jquery gin 在Windows下chm轉換為html的超簡單方法(反編譯CHM文件的方法)   通過調用Windows命令,將chm 文件轉換為html 文件。   方法:   命令行(cmd),輸入

How to cast List<Object> to List<MyClass> Object集合轉換實體集合

and ins 轉換 clas ase 強制轉換 lar targe tin List<Object> list = getList(); return (List<Customer>) list; Compiler says: cannot

將JSON數據轉換Java的實體

return ace arc 出錯 earch 方法 cit from 實體類 思路:首先將JSON格式的數據轉換成JSONObject,然後將JSONObject轉換成Java的實體類(其中類屬性包括List等類型) Java實體類: SearchFilter

前端將markdown轉換html

技術 git mil inf 使用 ext body tar ima 實現過程: 1. npm引入:npm install marked --save 2.在需要的文件(.ts)裏import Marked from "marked"; 如果.js: var mark

python入門:UTF-8轉換GBK編碼

終端 nco 什麽 等於 windows 就是 python 2 類型 window 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #UTF-8轉換成GBK編碼 4 #temp(臨時雇員,譯音:泰坡) 5

提取oracle資料庫HTML內容轉換正文格式

提取oracle資料庫HTML內容轉換成正文格式(去標籤)在更新到同表的TZNR # -*- coding:utf-8 -*- import cx_Oracle from bs4 import BeautifulSoup conn = cx_Oracle.connect('使用者名稱', '

使用URLDecoder.decode解析字串含有"+","+"號這個特殊字元會自動轉換空格

1.問題:       在使用url的時候,一般從網路或是伺服器得到的一個url地址一般都是經過encode編碼過(一般是使用URLEncoder.encode),或者是我們要給服務端傳遞url引數,直接使用的話,到服務端去解析的時候(應該服務端就是URLEnc