php 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]的字符

 代码如下 复制代码

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

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

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

解决方法:

加 //IGNORE

 代码如下 复制代码

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

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

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

例2

 

 代码如下 复制代码
<?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'); //得到设定编码的字符串长度
?>
时间: 2024-10-27 20:12:24

php gbk转换utf8丢失字符与乱码解决办法的相关文章

再再谈java乱码:GBK和UTF-8互转尾部乱码问题分析(续)

GBK字节码用UTF-8解码 UTF-8 的编码规则 转码实例 解决问题 jdk 18 测试 jdk 1617 jdk 版本的影响 小结 参考 在<再谈java乱码:GBK和UTF-8互转尾部乱码问题分析>我们分析了,如果从一个UTF-8 的字节序列,经过 new String(b,"GBK") 的操作,"可能"(与总字节数有关)会破坏数据.结果可能是,损失最后一个"字". 反过来呢?可能会很惨,大范围溃散... 同时,可参考:一段j

SQL SERVER2005 中文字符为乱码解决参考方法

SQL SERVER2005 中文字符为乱码解决参考方法 使用SQL SERVER2005的时候常常遇到中文字符为乱码的情况,经过研究发现,设置SQL的排序规则可以解决这个问题. 1.登录服务器打开Microsoft SQL Server Management Studio. 2.在要修改的数据库教程上单击鼠标右键,并选择"属性". 3.在弹出的数据库属性窗口中点击"选择页"中的"选项". 4.将排序规则由默认的SQL_Latin1_Genera

在Jsp程序读取或向DB写入数据乱码解决办法

js|程序|解决|数据 在Jsp程序读取或向DB写入数据乱码解决办法 在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号.这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题.以前我也经常为这个问题而苦恼,后来经查了些资料,终于解决了,我知道一定有很多朋友也会碰到这个问题,所以特就总结了一下,来拿出来让大家一起分享了.1.在网页中输出中文.JAVA在网络传输中使用的编码是"ISO-8859

php substr截断汉字乱码解决办法

substr() 函数返回字符串的一部分. 语法 substr(string,start,length) 例子 1  代码如下 复制代码 <?php echo substr("Hello world!",6); ?> 输出: world! 例子2  代码如下 复制代码 echo substr('中国文',1); 结果就是筹码了,后来才知道中文与英文的区别在于内编码了,一个网站这样说到substr函数在截取字符时是按字节来截取的,中文字符在GB2312编码时为2个字节,utf

数据库 MySQL中文乱码解决办法总结

MySQL中文乱码解决办法 前言: MySQL是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user; insert into user value(&

Excel2010开启CSV文件乱码解决办法

  Excel2010开启CSV文件乱码解决办法           首先将乱码的CSV文件用记事本的方式打开,可以看到不乱码了,但是没有了格式.接着执行另存为新档,在对话框中将UTF-8的编码改成ANSI,存档之后重新用Excel打开,这是就可以看到CSV 已经不乱码了. 步骤 Excel2010 1.首先,将有乱码的 CSV 档透过记事本的方式开启. Excel2010 2.用记事本打开的 CSV 档,你会发现文字是正常的,但格式已经不敷存在,没关系,让我们按下档案中的另存新档. 3.在另存

Jmail发送邮件与带附件乱码解决办法分享

 这篇文章主要介绍了Jmail发送邮件与带附件乱码解决办法,有需要的朋友可以参考一下 Jamil发送邮件的具体用法:   首先,我们要先下载Jamil.dll的组件,然后添加引用using jmail,然后再本机或者服务器上注册一下   将jmail.dll拷贝到服务器的system32目录下,开始-运行-cmd-输入regsvr32 jmail.dll,注册成功,然后写代码   代码如下(方法) 代码如下: using jmail;     protected void sendMail(St

几何画板出现符号乱码解决办法

  不少用户在使用几何画板时,都遇到过几何画板出现乱码的情况,比如=.+.<.>.(.)这些符号显示不出来,而是其它的各种各样的图案或符号.其主要原因是符号字体设置错误,正确的符号字体应该选"symbol".下面小编就针对几何画板里面出现的符号乱码问题,来为大家分享几何画板出现符号乱码解决办法. 比如在几何画板里,新建函数的符号很奇怪,出现了乱码,该如何解决呢? 几何画板符号乱码 解决方法如下: 一.还未安装过几何画板的主机 在几何画板安装好后第一次打开几何画板,会出现一个

ae模板素材丢失现彩条的解决办法

ae模板素材丢失现彩条的解决办法   1.出现这种情况,先查看一下AE CC 2015的编辑界面,如果显示有这样的状态,那么说明是素材没有完整被AE导入. 2.如图中所示,此时我们可以列表中[ 双击一下]没有被导入的文件. 3.一般情况,每个AE模板的文件夹都会有一个包含(视频.图片.音频.日记报告)的子文件夹,然后打开文件夹. 4.比如:我这个仅仅是视频没有被正确导入,那么只需要双击该视频素材,即可自动导入AE软件了. 5.如下图所示:导入素材之后,就可以看到一切都正常了.如果是图片.音频之类