首頁  >  文章  >  後端開發  >  php 透過iconv將字串從GBK轉換為UTF8字元集的方法

php 透過iconv將字串從GBK轉換為UTF8字元集的方法

怪我咯
怪我咯原創
2017-07-07 10:20:243079瀏覽

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= ‘你好,这里是卖咖啡!&#39;; 
  echo &#39;<br />&#39;; 
  echo iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $str); //将字符串的编码从GB2312转到UTF-8 
  echo &#39;<br />&#39;; 
  echo iconv_substr($str, 1, 1, &#39;UTF-8&#39;); //按字符个数截取而非字节 
  print_r(iconv_get_encoding()); //得到当前页面编码信息 
  echo iconv_strlen($str, &#39;UTF-8&#39;); //得到设定编码的字符串长度 
?>

範例2:
如果你的PHP檔案是UTF-8編碼的,那麼下面的程式碼就可以正確輸出:

 程式碼如下:

<?php 
  $str=&#39;我爱百度&#39;; 
  $utf=&#39;&#39;; 
  for ($i=0;$i<strlen($str);$i++) $utf.=sprintf("%%%02X",ord(substr($str,$i,1))); 
  echo $utf; 
?>

如果你的PHP檔案是GB的,那麼下面的程式碼可以運作:

程式碼如下:

<?php 
  $str=&#39;我爱百度&#39;; 
  $str=iconv("GBK", "UTF-8", $str); 
  $utf=&#39;&#39;; 
  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn