国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php 字符串編碼轉換程序

2024-05-04 21:56:36
字體:
來源:轉載
供稿:網友

iconv函數的一個bug。iconv在轉換字符”—”到gb2312時會出錯,解決方法很簡單,就是在需要轉成的編碼后加 “//IGNORE” 也就是iconv函數第二個參數后.以下為引用的內容:

iconv(“UTF-8″,”GB2312//IGNORE”,$data)

ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字符后面的字符串都無法被保存,這個iconv()這個函數,在php5中是內置的,實例代碼如下:

  1. <?php 
  2. echo $str'你好,這里是賣咖啡!'
  3. echo '<br />'
  4. echo iconv('GB2312''UTF-8'$str);      //將字符串的編碼從GB2312轉到UTF-8 
  5. echo '<br />'
  6. echo iconv_substr($str, 1, 1, 'UTF-8');   //按字符個數截取而非字節 
  7. print_r(iconv_get_encoding());            //得到當前頁面編碼信息 
  8. echo iconv_strlen($str'UTF-8');         //得到設定編碼的字符串長度 
  9. //也有這樣用的 
  10.    $content = iconv("UTF-8","gbk//TRANSLIT",$content); 
  11. ?> 

但是使用iconv函數可能會碰到如notice: iconv() [function.iconv]: detected an illegal character in input string ...錯誤了,原因是因為這個編碼范圍的問題,gb2312小于gbk小于uft8哦,所以大家轉換時要注意了,不過我們php還提供了一個函數mb_detect_encoding他可以比較好的解決這個問題了,現在把它寫成更專業的函數

  1. <?php 
  2. function phpcharset($data$to) { 
  3.  if(is_array($data)) { 
  4.   foreach($data as $key => $val) { 
  5.    $data[$key] = phpcharset($val$to); 
  6.   } 
  7.  } else { 
  8.   $encode_array = array('ASCII''UTF-8''GBK''GB2312''BIG5'); 
  9.   $encoded = mb_detect_encoding($data$encode_array); 
  10.   $to = strtoupper($to); 
  11.   if($encoded != $to) { 
  12.    $data = mb_convert_encoding($data$to$encoded); 
  13.   } 
  14.  } 
  15.  return $data
  16. ?> 

有時我們不知道字符的編碼這時會需要先檢測出編碼再進行轉換,代碼如下:

  1. function asciitog($brand
  2.  $cha=mb_detect_encoding($brand); 
  3.  if($cha=='utf-8'
  4.  { 
  5.    $brand2 = iconv($cha,"gb2312",$brand); 
  6.  } 
  7.  $cha2=mb_detect_encoding($brand2); 
  8.  if($cha2!='ascii'){ 
  9.   $brand=$brand2
  10.  } 
  11.  
  12.  return $brand

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苗栗县| 新宾| 通渭县| 凉城县| 苍南县| 镶黄旗| 斗六市| 鲁甸县| 枞阳县| 西吉县| 定日县| 南澳县| 沾益县| 滕州市| 宜兰市| 木兰县| 清新县| 屯门区| 施秉县| 钦州市| 遂川县| 光山县| 鸡东县| 康定县| 灌阳县| 黄浦区| 建湖县| 大石桥市| 乐业县| 崇文区| 浮梁县| 成安县| 泉州市| 保德县| 渭南市| 郧西县| 锡林浩特市| 元江| 伊金霍洛旗| 石台县| 岫岩|