PHP透過iconv將字串從GBK轉換為UTF8字元集的方法,所需的朋友可以參考下。
1. iconv()介紹
iconv函數可以將一種已知的字元集檔案轉換成另一種已知的字元集檔案。例如:從GB2312轉換為UTF-8。
iconv函數在php5內建,GB字元集預設開啟。
2. iconv()錯誤
iconv在轉換字元”—”到gb2312時會出錯,解決方法是在需要轉成的編碼後加上“//IGNORE”,也就是iconv函數第二個參數後.如下:
程式碼如下:
iconv("UTF-8", "GB2312//IGNORE", $data)
ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字串都無法被儲存。
3. iconv()範例
範例1:
程式碼如下:
<?php echo $str= ‘你好,这里是卖咖啡!'; echo '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo '<br />'; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 ?>
範例2:
如果你的PHP檔案是UTF-8編碼的,那麼下面的程式碼就可以正確輸出:
程式碼如下:
<?php $str='我爱百度'; $utf=''; for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); echo $utf; ?>
如果你的PHP檔案是GB的,那麼下面的程式碼可以運作:
程式碼如下:
<?php $str='我爱百度'; $str=iconv("GBK", "UTF-8", $str); $utf=''; for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); echo $utf; ?>
以上情況下,程式輸出的內容是:
%E6%88%91%E7%88%B1%E7%99%BE%E5%BA %A6
以上是php 透過iconv將字串從GBK轉換為UTF8字元集的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!