php生僻字的处理,插入数据库被截断,空白,乱码解决办法,php冷僻字处理

来源:互联网 发布:化学方程式书写软件 编辑:程序博客网 时间:2024/05/01 14:47
前言欢迎喜欢php的朋友、喜欢mssql的朋友、喜欢extjs的朋友,一起来交流,本人不才,建个群,希望各位老师赏光。QQ群: PHP-MSSQL-EXTJS 号码: 110888868
网上找了资料,以为是数据库编码,表编码,字段编码的问题,都改成了utf-8的,还是不行,最终的解决办法:将$str_1=iconv(“GB2312″,”UTF-8″,$str_1);改成$str_1=mb_convert_encoding($str_1,’UTF-8′,’GBK’);就可以了。主要有两个不同:转码使用的方法不同,一个是用iconv,另一个用mb_convert_encoding目标编码不同,一个是用GB2312,另一个是GBK查查两个转码方式的差异string iconv ( string $in_charset , string $out_charset , string $str )string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )  转自http://blog.run21.net/?p=232


 

 

不过,使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。 查看php的信息页面,如果出现如下画面: 则说明已启用mbstring (multi-byte string)扩展支持。如果没有出现上面的画面,则需要做如下设置 ,让php支持该扩展。1、windows 服务器环境编辑 php.ini 文件,将; extension=php_mbstring.dll 前面的 ; 去掉,重启网页服务器。2、Linux 服务器环境在编译配置时加入 --enable-mbstring=cn 编译参数 ,再进行PHP的编译安装。
转自http://hegz.iteye.com/blog/634865


 

自已总结代码:

字符串乱码转换:$rolename=iconv("gb2312","utf-8", $rolenamearray[0]) ;
字符串乱码转换+生僻字500错误解决方法:$rolename=mb_convert_encoding(rolename,'UTF-8','GBK');

数组乱码转换:eval('return '.iconv('gb2312','utf-8',var_export($rolename,true)).';');
数组乱码+生僻字500错误解决方法:$arrarr[] =eval('return '.mb_convert_encoding(var_export($obj,true),'utf-8','gb2312').';');

 

 

$arrarr[] =eval('return '.mb_convert_encoding(var_export($obj,true),'utf-8','gb2312').';');
 //$arrarr[]  =  eval('return '.iconv('gb2312','utf-8',var_export($obj,true)).';') ;
}

原创粉丝点击