Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php gbk转换utf8丢失字符与乱码解决办法

php gbk转换utf8丢失字符与乱码解决办法

发布时间:2018-12-07   编辑:www.jquerycn.cn
jquery中文网为您提供php gbk转换utf8丢失字符与乱码解决办法等资源,欢迎您收藏本站,我们将为您提供最新的php gbk转换utf8丢失字符与乱码解决办法资源
在php中如果我们把uft8字符串转换成gbk或gb2312都会出现乱码或丢失的问题,因为gbk编码范围与uft8编码范围的问题,下面我们简单的列了一个gbk与utf8编码范围表,看了就知道原因了。

一、编码范围
1. GBK (GB2312/GB18030)
x00-xff GBK双字节编码范围
x20-x7f ASCII
xa1-xff 中文
x80-xff 中文


2. UTF-8 (Unicode)
u4e00-u9fa5 (中文)
x3130-x318F (韩文
xAC00-xD7A3 (韩文)
u0800-u4e00 (日文)

ps: 韩文是大于[u9fa5]的字符

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5136')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5136>

$c = '测试•字符传换•五一快乐!';

echo iconv('utf-8', 'gbk',$c);

只会输出: 测试 后出全会丢失"."

解决方法:

加 //IGNORE

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1968')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1968>

$c = '测试•字符传换•五一快乐!';

echo iconv('utf-8', 'gbk//IGNORE',$c);

输入出:测试字符传换五一快乐!

例2

 

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9761')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9761><?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'); //得到设定编码的字符串长度
?>

您可能感兴趣的文章:
php gbk转换utf8丢失字符与乱码解决办法
php编码转换函数mb_convert_encoding与iconv
php编码转换函数mb_convert_encoding与iconv使用说明
php分割GBK中文乱码的解决方法
mysql导入导出数据时中文乱码的解决办法
(图文)mysql字符集设置详解
mysql中文乱码原因与解决方法
php解析JSON中文乱码问题的解决方法
mysql中utf-8编码数据库转换成GBK编码的问题
关于iconv('gbk', 'utf-8',$str)丢失字符的解决方法

[关闭]