在php中如果我們把uft8字串轉換成gbk或gb2312都會出現亂碼或丟失的問題,因為gbk編碼範圍與uft8編碼範圍的問題,下面我們簡單的列了一個gbk與utf8編碼範圍表,看了就知道原因了。
一、編碼範圍
1. GBK (GB2312/GB18030)
x00-xff GBK雙位元組編碼範圍
x20-x7f ASCII
xa1-xff 中文
x80-xff 中文
2. UTF-8 (Unicode)
u4e00-u9fa5 (中文)
x3130-x318F (韓文
xAC00-xD7A3 (韓文)
u0800-u4e00 (日文)
ps: 韓文是大於[u9fa5]的字元
例
| 代碼如下 |
複製代碼 |
$c = '測試•字元傳換•五一快樂!'; echo iconv('utf-8', 'gbk',$c); |
只會輸出: 測試 後出全會丟失"."
解決方案:
加 //IGNORE
| 代碼如下 |
複製代碼 |
$c = '測試•字元傳換•五一快樂!'; echo iconv('utf-8', 'gbk//IGNORE',$c); |
輸入出:測試字元傳換五一快樂!
例2
| 代碼如下 |
複製代碼 |
echo $str= ‘你好,這裡是賣咖啡!'; echo ' '; echo iconv('GB2312', 'UTF-8', $str); //將字串的編碼從GB2312轉到UTF-8 echo ' '; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字元個數截取而非位元組 print_r(iconv_get_encoding()); //得到當前頁面編碼資訊 echo iconv_strlen($str, 'UTF-8'); //得到設定編碼的字串長度 ?> |
http://www.bkjia.com/PHPjc/632129.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632129.htmlTechArticle在php中如果我們把uft8字串轉換成gbk或gb2312都會出現亂碼或丟失的問題,因為gbk編碼範圍與uft8編碼範圍的問題,下面我們簡單的列了一個...