php和数据库传输的中文字符串报错问题

RUCwang 2017-08-18 01:01:20
使用临时域名进行网页访问,login.html页面始终得不到返回数据,在本地服务器上没有问题,修改login.php代码,发现当用户名密码错误时可以返回正确的值,说明是可以从数据库中进行查询的。但是当从把从数据库中取得的值输出时却会报错,后反复试验,发现是每当输出从数据库中得到的中文字符串时就会报错。然后通过向数据库中插入数据时验证到,js页面向php页面传输的数据,再从php页面返回是正常的,说明js和php页面之间不存在问题,但是在数据库中看到的却是乱码。说明在数据库的编码、php编码之间存在问题。
4.修改数据库编码、php编码、js编码、html编码全部为GBK,依然没有解决问题,还是从数据库中可以拿到数据,但是中文字符串在php中报错,新增的数据在php页面是正确的(echo验证过),但是后台仍是乱码。
5向php页面中加入.如下代码:
mysqli_query("set character set 'gbk'");//读库
mysqli_query("set names 'gbk'");//写库
仍然报错!!!,修改为
mysql_query("set character set 'gbk'");//读库
mysql_query("set names 'gbk'");//写库
还是错!!!!!!!
想到ajax中设置了发送数据的格式为utf8,虽然觉得前后台之间传输不存在问题,还是尝试进行了修改,xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=gbk');
没卵用,依旧错!!!!!!!
实在是木有办法啊!!
...全文
275 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我没有吃饭 2017-08-22
  • 打赏
  • 举报
回复
UTF8也有报错的,用了一款SugarCRM的系统,也是Mysql+ PHP的,字符UTF8,插数据时很大概率会报错
wood87654321 2017-08-18
  • 打赏
  • 举报
回复
多年血淋淋的教训就是全部向utf8靠拢而千万别向GB靠拢,正如你所知,仅ajax用utf8就会给前后端GB转码带来很大麻烦。 1、先将数据库、数据表全部设成utf8; 2、php后台文件本身转存成utf8无BOM文本,并在开头写一句@header("Content-type:text/html;charset=utf-8"); 有这两点后端就应该OK了,一个mysql_query也别用。 如果你前端HTML非要以GB编码显示,那么唯一的转码只在这里

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧