乱码

dedecms中文注册会员无法打开空间的解决方法

解决中文注册的会员空间打不开问题

这个问题我也很苦恼,不过还是被解决了。大家分享下哈。

其实说到底还是个字符编码转换问题。

因为汉字没有在判断uid值时出现了错误,导致系统无法识别用户,所以发生了“你访问的用户可能已经被删除!”错误

方法是
在“member\config.php”文件的最后,PHP结束之前添加 isUTF8($str)函数

【转】兼容IE和火狐的Ajax中文乱码解决办法

第一种是向服务器端发送中文参数时(xmlhttp.open(“get|post”,url,true)),服务器端接收到的为乱码,在IE里是正常的,但是在Firefox里面就出现了乱码

$str=iconv("UTF-8","GBK",$str);
 
这个在Firefox上顺利解决了问题,到IE下测试,发现IE又出现了问题,服务器端接收到的参数没值,由于发送头设置了 setRequestHeader("Content-Type","application/x-www

-form-urlencoded");,就找到问题所在了,然后就在发送那里进行了参数编码:

 
url=encodeURI(url);
url=encodeURI(url); //两次也可以写成geturl=encodeURI(encodeURI(geturl));
xmlhttp.open("POST",url,true);

 

PHP utf-8和gb2312编码转换乱码的问题

经过一时间的 php + mssql,感觉 mssql 对编码的支持不是很好(其实还是自己没有把握好啦),但是又还没有来得急换数据库,只能将就点,今天又在提交数据时出现了错误。

由 于提交的 ntext 字段的内容比较多,大约有 220 KB,所以造成了我的误解,以为是文章太长而引起的错误。我一看 php 配置,发现  php 对 mssql.textsize 的支持已经在 400 K了,怎么还出错?开启错误后才发现,原来不是文章太长,而是编码引起的错误。错误如下:
Notice: iconv() [function.iconv]: Detected an illegal character in input string in...。

 英文实在太烂,只是知道 iconv() 函数出问题。google 翻译,说是输入字符串中检测到非法字符。恍然大悟。

根据错误提示到网上找到问题的解决办法,就是在 iconv() 的第二个参数加个 //IGNORE ,就是忽略错误的意思。代码如下:
iconv("utf-8", "gbk//IGNORE", $str);

测试,提交成功。

PHP乱码的问题

曰:“人生不如意事十之八九”,写代码也是如此。

这两天好不容易解决了一个个菜鸟的 php 问题,现在居然又被一个乱码的问题所困扰,就是从 mysql 里面读出来的中文字符乱码了。据经验,这是所编码问题引起的问题。自己找了一下,mysql 数据是用 gbk 的,文件是用 gb2313,而且用记事本打开也是 ANSI 的编码,文件头部也加了 header("Content-Type: text/html; charset=gb2312"); 。这下子真是生活在杯具中了,没道理会乱码呀。

后来 google 到了一个有用的东西:在数据库连接后面加 mysql_query("SET NAMES 'GBK'"); ,如:

$db = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");

订阅RSS - 乱码