PHP iconv 函数转gb2312的bug解决方法
iconv( "UTF-8", "gb2312//IGNORE" , $FormValues['a'])
ignore的意思是忽略转换时的错误,发现iconv在转换字符"—"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
另外mb_convert_encoding没有这个bug,所以最好的写法是:
mb_convert_encoding($FormValues['a'], "gb2312", "UTF-8");
但是需要先enable mbstring 扩展库。
也可以把mysql数据库的collation设成utf-8就不用作转换了
相关推荐
-
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
iconv - Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding - Convert character encoding(PHP 4 >= 4.0.6, PHP 5) 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 需要先启用 mbs
-
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
示例代码,用到了函数substr与iconv_substr,mb_substr 复制代码 代码如下: <html><head><meta charset='utf-8'><title>截取中文字符串_我们_www.jb51.net</title></head><body><?php$str='123我们456欢迎大家的光临';echo substr($str,0,4);echo '<br>';echo i
-
基于php iconv函数的使用详解
unix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的dll就可,例如,需要加入gb库的支持,需要如下设置:extension_dir = "C:/ipaddr/php/extensions/"(注意,建议写全地址,并且后面加上/,很多时候是因为这里设置不对,才导致无法加载其它模块的dll的)再打开extension=php_gd2.dll但如果是安装iconv.dll,按上面方法,打开php_iconv.dll后,还是
-
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码. mb_convert_encoding的用法见官方: http://cn.php.net/manual/zh/function.mb-convert-encoding.php 做一个GBK To UTF-8 复制代码 代码如下: <?php header(&qu
-
PHP iconv 解决utf-8和gb2312编码转换问题
终于皇天不负有心人,答案还是让我找到了. 网上的都是这样用的 复制代码 代码如下: $content = iconv("utf-8","gb2312",$content); 这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢? 原因实际上也很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误.现在给你正确的答案. 真正的答案是这样的 复制代码 代码如下: $content
-
php中iconv函数使用方法
iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库. 1.下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz: 2.解压缩tar -zxvf libiconv-1.9.2.tar.gz; 3.安装libiconv #configure --prefix=/usr/local/iconv #make #make install 4.重新编译
-
php iconv() : Detected an illegal character in input string
开始是这样用的$str = iconv('UTF-8', 'GB2312', unescape(isset($_GET['str'])? $_GET['str']:''));上线后报一堆这样的错:iconv() : Detected an illegal character in input string 考虑到GB2312字符集比较小,换个大的吧,于是改成GBK:$str = iconv('UTF-8', 'GBK', unescape(isset($_GET['str'])? $_GET['
-
PHP中iconv函数知识汇总
今天在修改论文在线的时候,遇到了iconv这个函数.学习一下 header('Content-Type: application/vnd.ms-excel;charset=UTF-8"'); $name=iconv('utf-8', 'gb2312', $data['year'].'年,第'.$data['period'].'期通信录'); header('Content-Disposition: attachment;filename="' . $name . '.xls"
-
linux系统上支持php的 iconv()函数的方法
1.下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz: 2.解压缩tar -zxvf libiconv-1.9.2.tar.gz; 3.安装libiconv 复制代码 代码如下: #configure --prefix=/usr/local/iconv #make #make install 4.重新编译php 增加编译参数--with-iconv=/usr/local/iconv windows下 最近
-
PHP中mb_convert_encoding与iconv函数的深入解析
mb_convert_encoding这个函数是用来转换编码的.原来一直对程序编码这一概念不理解,不过现在好像有点开窍了. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码.mb_convert_encoding的用法见官方:http://php.net/manual/zh/function.mb-conve
-
PHP通过iconv将字符串从GBK转换为UTF8字符集
1. iconv()介绍 iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件.例如:从GB2312转换为UTF-8. iconv函数在php5中内置,GB字符集默认打开. 2. iconv()错误 iconv在转换字符"-"到gb2312时会出错,解决方法是在需要转成的编码后加 "//IGNORE",也就是iconv函数第二个参数后.如下: 复制代码 代码如下: iconv("UTF-8", "GB2312//IGNO
随机推荐
- jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
- python使用MySQLdb访问mysql数据库的方法
- Win7旗舰版中的IIS配置asp.net的运行环境配置教程(图文教程+视频)
- 设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法)
- ASP.NET URL伪静态重写实现方法
- PHP文件上传判断file是否己选择上传文件的方法
- 简介Django框架中可使用的各类缓存
- 浅谈c/c++中使用指针需要注意的问题
- ajax添加数据后如何在网页显示
- HTML-CSS群中单选引发的“事件”
- java中将科学计数法转换普通计数法的简单方法
- JavaScript中的Location地址对象
- python魔法方法-属性转换和类的表示详解
- SQL Server 2005降级到2000的正确操作步骤分享
- jb51站长推荐的用js实现的多浏览器支持的图片轮换展示效果ie,firefox
- jQuery模拟窗口抖动效果
- Js的MessageBox
- java文件对话框过滤特定文件类型示例
- serialVersionUID作用全面解析
- 深入浅析Android接口回调机制