数据库和表建立的时候都设置的utf8,写功能模块时发现插入数据时
中文乱码。
-----------------------------------------------windows---------------------------------------------------------
所以如果想要不出现乱码只有修改my.ini文件,
从my.ini下手(标签下没有的添加,有的修改)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。
然后重启mysql,执行
mysql> SHOW VARIABLES LIKE 'character%';
确保所有的Value项都是utf8即可
。
------------------------------------------------------------------linux-------------------------------
在网上查询到以下解决办法方法:
修改mysql的启动配置文件my.cnf:
找到[client] 添加:
default-character-set=utf8
找到[mysqld] 添加:
default-character-set=utf8
init_connect='SET NAMES utf8'
然后重启mysql服务。
可是我根据这样修改后启动mysql服务报错,启动不了。在网上试了多种解决办法,最后找到一个方法,可以解决,如下:
其他的还跟上面一样,只有在[mysqld]下面添加的
default-character-set=utf8
改为:
character-set-server=utf8
输入命令sudo service mysql restart重新启动mysql,启动成功!再查看编码为:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
问题解决,表中中文数据不再乱码。
提示:my.cnf文件通常位于 /etc/mysql/ 或 /etc/ 下,可能因安装版本或系统而异。