PHP iconv 解决utf-8和gb2312编码转换问题

终于皇天不负有心人,答案还是让我找到了。

网上的都是这样用的


代码如下:

$content = iconv("utf-8","gb2312",$content);

这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢?

原因实际上也很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误。现在给你正确的答案。

真正的答案是这样的

代码如下:

$content = iconv("utf-8","gb2312//IGNORE",$content);

很简单的,只要后面加上一个//IGNORE就行,加上这个就可以是ICONV()函数忽略错误,继续执行。

同理,要像把gb2312换为utf-8只要写上$content = iconv("gb2312","utf-8//IGNORE",$content);就行

(0)

相关推荐

  • PHP乱码问题,UTF-8乱码常见问题小结

    一.HTML页面转UTF-8编码问题 1.在head后,title前加入一行: <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 顺序不能错,一定要在 显示的标题有可能是乱码! 2.html文件编码问题: 点击编辑器的菜单:"文件"->"另存为",可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8. 3.HTML文

  • PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码

    老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有php文件里面 ,数据库里面 存储 的编码 ,页面显示 ,数据传输 ): 1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为 utf8_general_ci 数据库的设置: 在my.ini文件中查找:[mysql]default-character-set = utf8[mysqld]default

  • php中utf-8编码下用正则表达式如何匹配汉字

    在javascript中,要判断字符串是中文是很简单的.比如: 复制代码 代码如下: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); } else { alert("该字符串不全部是中文"); } 想当然的,在php中来判断字符串是否为中文,就会沿袭这个思路: 复制代码 代码如下: <?php $str = "php编程&qu

  • php中隐形字符65279(utf-8的BOM头)问题

    今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出的时候会一起输出到客户端,导致客户端如果使用ajax得到返回值时,无法匹配字符串. php隐形字符65279解释如下: UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式. 何谓BOM? "EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard".在utf8文件中常用BOM来表明这个文件是

  • jq的get传参数在utf-8中乱码问题的解决php版

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

  • PHP如何实现Unicode和Utf-8编码相互转换

    最近恰好要用到unicode编码的转换,就去查了一下php的库函数,居然没找到一个函数可以对字符串进行Unicode的编码和解码!也罢,找不到的话就自己实现一下了... Unicode和Utf-8编码的区别 Unicode是一个字符集,而UTF-8是Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1个字节.Unicode为双字节,而UTF-8中汉字占三个字节. UTF-8编码字符理论上可以最多到6个字节

  • php smarty截取中文字符乱码问题?gb2312/utf-8

    一般网站页面的显示都不可避免的会涉及子字符串的截取,这个时候truncate就派上用场了,但是它只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,视觉上会显得参差不齐,影像美观.这是因为一个中文的长度大致相当与两个英文的长度.此外,truncate也不能同时兼容GB2312, UTF-8等编码. 改良的smartTruncate: 文件名:modifier.smartTruncate.php 复制代码 代码

  • PHP 截取字符串函数整理(支持gb2312和utf-8)

    1.截取GB2312字符用的函数 PHP代码 复制代码 代码如下: <?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i+

  • php utf-8转unicode的函数第1/2页

    UTF编码 UTF-8就是以8位为单元对UCS进行编码.从UCS-2到UTF-8的编码方式如下: UCS-2编码(16进制) UTF-8 字节流(二进制) 0000 - 007F 0xxxxxxx 0080 - 07FF 110xxxxx 10xxxxxx 0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 例如"汉"字的Unicode编码是6C49.6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxx

  • php中文乱码怎么办如何让浏览器自动识别utf-8

    刚开始学习php的朋友可能经常遇到问题,就是调试的时候经常显示乱码 每次打开浏览器都要改下编码,很麻烦, 有没有方法让浏览器自动识别utf-8呢? 解决的方法很简单 就是在php里加一句header 例: header("Content-type: text/html; charset=utf-8"); echo '我是初学者'; 不错需要注意的一点是 header("Content-type: text/html; charset=utf-8"); 这一句前不能向

  • php中json_encode UTF-8中文乱码的更好解决方法

    最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了.以下是自己的解决json_encode的办法.有更好的方法请分享出来吧! 第一种: 这种简单的做一个代码转换,urlcode之后再返回所需数组 我代码这样就足够了. 代码如下 复制代码 public static function encodeOperations ($array) { foreac

  • PHP 与 UTF-8 的最佳实践详细介绍

    <PHP中的字符串.编码.UTF-8>一文中描述了一些列的基础知识,比较枯燥,现在来说点有用的--PHP 字符串处理的最佳实践,本文是"PHP.字符串.编码.UTF-8"相关知识的第二部分.先说结论-- 在 PHP 中的各个方面使用 UTF-8 编码. PHP 语言层面是不支持 Unicode字符集的,但是可以通过 UTF-8 编码能处理大部分问题. 最佳实践就是明确知道输入编码(不知道就检测),内部统一转换为 UTF-8 编码,输出编码也统一是 UTF-8编码. PHP

  • php UTF-8、Unicode和BOM问题

    一.介绍 UTF-8 是一种在web应用中经常使用的一种 Unicode 字符的编码方式,使用 UTF-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量节约网络带宽. UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记.BOM,是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF

随机推荐