php 字符串编码转换程序

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
波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » php 字符串编码转换程序

2 评论

  1. Thank you great post. Hello Administ . Metropol Halı Karaca Halı Öztekin ve Selçuklu Halı Cami Halısı ve Cami Halıları Türkiye’nin En Büyük Cami Halısı Fabrikasıyız…

  2. Thank you for great content. Hello Administ.

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡