博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql乱码处理一则
阅读量:5821 次
发布时间:2019-06-18

本文共 696 字,大约阅读时间需要 2 分钟。

用yii做了个投票的小东西,用了sqlite数据库。临上线时,因为考虑到压力问题,换成mysql。只有简单的几个表,直接手工建的。

实际用时,发现数据库中保存的汉字成为????形式的东西。

首先,yii是用了utf8的。config/mail.php中,mysql的连接参数里也有charset=utf8的设置。

其次,建立mysql数据库时也是选了utf8的。建表时没细看。

既然出了乱码,当然要想办法。

先是去网上找了一些东西,要改这个改那个的,问题是我的php+mysql环境是用了phpnow建的,在其它机器上都运行完全正常,不象是配置文件有误。

其次,怀疑是建表时没有注意到表的字符集。看了一下,果然表的字符集给默认设置成了latin-(瑞典)什么的东西,改成utf8-general-ci,(用了phpMyAdmin的表管理下面的“整理”),乱码依旧。

试着手工在phpMyAdmin里有问题的表里增加一条带汉字的记录,出现错误:

    Warning: #1366 Incorrect string value: #xxxx #xxxx #xxxx... for column xxxx

 看来是mysql自身的问题。没办法,试着删除这个表,重建一个,建时选择utf8字符集,再试,一切正常了。

 ------------

结论:

一,库的字符集设好了看来还不够,表的字符集也要正确。

二,表的字符集如果建表时设错了,用“整理”功能修改可能无效,需要重建表。 

转载于:https://www.cnblogs.com/anjo/archive/2012/03/02/2376495.html

你可能感兴趣的文章
新开的博客,为自己祝贺一下
查看>>
【CQOI2011】放棋子
查看>>
采用JXL包进行EXCEL数据写入操作
查看>>
一周总结
查看>>
将txt文件转化为json进行操作
查看>>
线性表4 - 数据结构和算法09
查看>>
C语言数据类型char
查看>>
Online Patching--EBS R12.2最大的改进
查看>>
Binary Search Tree Iterator leetcode
查看>>
uva-317-找规律
查看>>
Event事件的兼容性(转)
查看>>
我的2014-相对奢侈的生活
查看>>
zoj 2412 dfs 求连通分量的个数
查看>>
Java设计模式
查看>>
一文读懂 AOP | 你想要的最全面 AOP 方法探讨
查看>>
Spring Cloud 微服务分布式链路跟踪 Sleuth 与 Zipkin
查看>>
ORM数据库框架 SQLite 常用数据库框架比较 MD
查看>>
华为OJ 名字美丽度
查看>>
微信公众号与APP微信第三方登录账号打通
查看>>
onchange()事件的应用
查看>>