Technical support2007/12/25 09:37
views: 2420 times
超大字體(180%)放大字體(130%)原始字體(100%)
最近遇到的一些編碼問題,時常在網頁裡面看到 &#xxxxxxx; 的字碼,透過瀏覽器,會將這些 unicode html code 轉成可以顯示的文字,例如:對於冷え性や生活習慣病,在網頁上看起來很正常,但是一但轉回到原始碼(HTML code)編輯的時候,就會變成:對於冷え性や生活習慣病,這個樣子。

翻了 Google 大神,這個東西是因為編碼的關係,在 BIG-5 編碼中若是沒有可以顯示的文字,這些文字就會經過特殊的演算法則轉換成 &#xxxxxx; 這種樣子,這些就稱為 unicode html。麻煩的是,在儲存資料的時候,我並不希望會有這種東西出現,尤其是要將原本是 BIG-5 的資料轉換為 UTF-8 的時候,這些東西就很討厭。

依據大神的指示,這些字碼的來源,大概可以這麼解釋:unicode html 字碼來元是由原本的編碼,轉換為 UCS-2 之後,再取二進制轉換,再取一次 16 to 10 進制轉換,在加上 &# 而得到這個字碼。

以 PHP 來說,他大概是這個樣子:

以上的例子就是將文字轉換為 unicode html 的方式,那麼,轉回來呢,很簡單,將上述的程式邏輯反過來即可。

unicode html 轉回文字,由於 php 沒有 hex2bin 的函式,所以我們自己簡單的寫一個來用。


這就是將 unicode html 轉回文字的方式。

以上,希望對於要處理 unicode html 的人有所幫助。
創用 CC 授權
Creative Commons License
本創作適用 姓名標示-非商業性-禁止改作 3.0 創用 CC 授權,台灣並依循所適用的授權條款。

Bookmarks  HEMiDEMi  Technorati  Del.icio.us  Digg  funP  Yahoo!  Furl
Writer profile
author image
偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。
Posted by hina

Trackback URL : http://hina.ushiisland.net/blog/hinablue/trackback/450

Leave your greetings.

[登入][OpenID是?]