您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php 字符串编码转换程序_PHP教程

2025/8/2 5:45:35发布29次查看
我们经常会要碰到把uft-8字符转换在gbk或gb2312编码,但在使用过程中转换经常会碰到一些问题,下面我来介绍利用php自带的字符串转换函数来实现字符编码转换。
iconv函数的一个bug。iconv在转换字符”—”到gb2312时会出错
解决方法很简单,就是在需要转成的编码后加 “//ignore” 也就是iconv函数第二个参数后.
如下:
以下为引用的内容:
 代码如下 复制代码
iconv(“utf-8″,”gb2312//ignore”,$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
这个iconv()这个函数,在php5中是内置的.
列子
 代码如下 复制代码
但是使用iconv函数可能会碰到如notice: iconv() [function.iconv]: detected an illegal character in input string ...错误了,
原因是因为这个编码范围的问题,gb2312小于gbk小于uft8哦,所以大家转换时要注意了,不过我们php还提供了一个函数mb_detect_encoding他可以比较好的解决这个问题了。
现在把它写成更专业的函数
 代码如下 复制代码
$val) {
   $data[$key] = phpcharset($val, $to);
  }
 } else {
  $encode_array = array('ascii', 'utf-8', 'gbk', 'gb2312', 'big5');
  $encoded = mb_detect_encoding($data, $encode_array);
  $to = strtoupper($to);
  if($encoded != $to) {
   $data = mb_convert_encoding($data, $to, $encoded);
  }
 }
 return $data;
}
?>
有时我们不知道字符的编码这时会需要先检测出编码再进行转换。
 代码如下 复制代码
function asciitog($brand)
{
 $cha=mb_detect_encoding($brand);
 if($cha=='utf-8')
 {
   $brand2 = iconv($cha,gb2312,$brand);
 }
 $cha2=mb_detect_encoding($brand2);
 if($cha2!='ascii'){
  $brand=$brand2;
 }
return $brand;
}
http://www.bkjia.com/phpjc/632143.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/632143.htmltecharticle我们经常会要碰到把uft-8字符转换在gbk或gb2312编码,但在使用过程中转换经常会碰到一些问题,下面我来介绍利用php自带的字符串转换函数来...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product