html unicode convert

最近遇到的一些編碼問題,時常在網頁裡面看到 xxxxxx; 的字碼,透過瀏覽器,會將這些 unicode html code 轉成可以顯示的文字,例如:對於冷え性や生活習慣病,在網頁上看起來很正常,但是一但轉回到原始碼(HTML code)編輯的時候,就會變成:對於冷え性や生活習慣病,這個樣子。

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

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

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

1. <?php
2. $str = "温";
3. $unicodeHtml = base_convert(bin2hex(iconv("utf-8", "ucs-2", $str)), 16, 10);
4. print "".$unicodeHTML.";"
5. ?>
6. // 顯示結果
7. 温
以上的例子就是將文字轉換為 unicode html 的方式,那麼,轉回來呢,很簡單,將上述的程式邏輯反過來即可。

unicode html 轉回文字,由於 php 沒有 hex2bin 的函式,所以我們自己簡單的寫一個來用。
1. 2. function hex2bin($string)
3. {
4. $len = strlen($string);
5. retunr pack("H".$len, $string);
6. }
7.
8. $str = "28201";
9. $unicodeHtml = iconv("ucs-2", "utf-8", hex2bin(base_convert($str, 10, 16)));
10.
11. print $unicodeHtml;
12. ?>
13. // 顯示結果
14.
15. 温

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

以上,希望對於要處理 unicode html 的人有所幫助。

ref:http://hinablue.blogspot.com/2008/01/php-tech-unicode-html-convert.html

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/640706/viewspace-1018388/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/640706/viewspace-1018388/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值