服务器数据库编码格式问题

最近做项目在部署到阿里云服务器上之后出现了两个问题:

1、乱码问题。

2、ajax的php处理页面里面利用json_encode()函数返回json数据,则数据库返回的数据只能是UTF8,如果是gbk则json也无法返回。

发现是数据库编码格式问题,网站使用的编码格式为UTF8,数据库的编码格式调为了UTF8,但是character_set_server的值还是gbk。

查看数据库编码:

在mysql命令行里面输入:show variables like 'character%';

服务器数据库编码格式问题解决方案

所以还是有乱码存在。

于是从网上找了解决方法:

在mysql命令行输入:set character_set_server=utf8;

服务器数据库编码格式问题解决方案

OK修改成功!返回数据也正常,但是当关闭数据库服务,重新启动,发现set character_set_server又变回了gbk。

所以这个方法只能暂时性的解决。

最终找到了一个能用的不是特别好的解决方法是在执行SQL语句之前,先执行该SQL语句即可:

$conn->query('SET character_set_client = utf8;');
$conn->query('SET character_set_results = utf8;');
$conn->query('SET character_set_connection = utf8;');

这种解决方法个人感觉不是很好,每次执行的次数太多,如果能修改服务器数据库的编码格式最好。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。