
今天遇到了一个问题,后端逻辑处理完存到MySQL数据库里的中文内容都变成问号 ‘???’了。 第一反应是我数据库的排序规则搞错啦? 马上登上PHPadmin看了一眼,没毛病 都是utf8_general_ci,手动修改问号成中文也都正常显示。 这里要说一下另外一个问题,开始没注意这个排序规则,默认的是latin1。导致的问题就是数据表中完全不能显示中文,不是乱码 是直接报错。
好啦,既然不是这个问题,那又是什么呢?
在网上找了一下,问题还挺“普遍的”。大致上就是字符集编码问题,改一下就好了,下面是我找到的解决方式(参考其他答主 因为太零碎了就不一一贴参考链接了 再说我也实在不知道哪个才是原答主【ε=ε=ε=┏(゜ロ゜;)┛】):系统环境是Ubuntu 14.04,windows请找my.ini。

2.在[client]/[mysqld_safe]/[mysql]下面依次加入
3.重启mysql
按照网上其他答案 这时候应该可以了。但是……
what???我发现并没有什么用呀?!!!
好吧,下面 才是我真正想说的 :
首先第一步,修改这些配置文件的时候,你会发现它们是read only 也就只读的。所以我们理所应当的敲下了下面的命令
(我知道这不是个好习惯,但是真的很多人都这是这么做的-/-)
好的,这个时候终于可以修改my.cnf啦
这个时候,有的同学可以顺利的修改 进行下一步啦。但是!!!以我为代表的另一部分同学就倒霉啦,打开 my.cnf 一看…… what?? 基本就是个空的,毛都没有?!好啦好啦 请坐下,这个时候你要看一看下边是不是有个 include****** 对记住后边的文件 去这些文件里做修改就行啦。其实,你直接把需要修改的内容写在 my.cnf中也是可以的,我就这么干了。
终于到了最后一步,重启完 mysql,又试了一下,还是乱码……
问题出在哪呢?请跟我做:
回车之后,会有个warning /etc/mysql/my.cnf Ignore
意思是my.cnf被忽略了。它被忽略了 那我们的修改肯定没有用了呀。
其实,我们一开始修改了它的读写权限是 777,所有人都可以读写它。系统认为它不安全,才有了这个warning。
所以再我们修改完之后,要再改一下它的权限,比如 644?
好的 现在重启mysql 再实验一下 没问题啦!!!
ps: 查看mysql 字符集编码命令:
进入mysql 然后输入命令
就可以看到了 没截图 就不放了。
啰里啰唆说了一堆,主要是把我遇到的坑记录一下。如果对你有帮助 那我也很开心。
MySQL为什么不能插入中文?
在 MySQL 4.1 或更新版本, 如果你要使用中文,则必须用 UTF-8。 你要用 utf8 charset 来建立数据库:mysql> CREATE Database bugzero_db CHARACTER SET utf8; 或者,如果非utf8 数据库已经建立,你可用alter来改变:mysql> ALTER DATABASE bugzero_db CHARACTER SET utf-8; 注意,只有没有任何 tables 的情况下,ALTER DATABASE 才有效。 当然,如果 utf8 已经是你mysql Server的默认charset,那么,上面步骤就不需要了
Mysql latin1插入中文数据乱码,该怎么处理
mysql中要执行 mysql_query(set names utf8); 这句就不会出乱码了。
我从数据库输出的数据变成么问号了?? - 技术问答
肯定是编码问题了~~~~? ?拿gbk为例子吧查询数据库时候query(\set names gbk\)网页编码也要设成gbk 另外数据库的编码也要是gbk另外网页文件的编码也要是gbk,不是的话??开记事本另存为gbk编码····四处全部相同后就OK 了? ? 本版顶置帖子里面有相关的问题解决办法? ?你可以找找看看·····
发表评论