美文网首页
解决写入中文数据到 MySql 时变成 ????

解决写入中文数据到 MySql 时变成 ????

作者: Sixpence_ | 来源:发表于2018-03-18 22:13 被阅读0次

    今天把 Java 项目的开发环境从 Windows 转到 Ubuntu 中来,突然发现把一些中文数据写入数据库后变成 ???? (通过 MySql 命令行直接执行 SQL 命令没有问题),在 Windows 中时还好好的,真是百思不得其解。 然后一顿 Google ,又是修改代码,又是通过命令修改数据库的编码,最后还是不行。 最终才发现需要在 MySql 的配置文件中设置编码,修改如下:

    • /etc/mysql/mysql.conf.d/目录下找到mysqld.cnf,以 root 方式编辑,在[mysqld]下方添加一条character-set-server=utf8 ,保存。

    • /etc/mysql/conf.d/目录下找到mysql.cnf,以 root 方式编辑,在[mysqld]下方添加一条default-character-set=utf8,保存。

    注意:

    1. 创建数据库时要设置好编码,如果是使用 Navicat 来操作 MySql ,在创建数据库时要如图设置: 2018-03-18 22-01-18 的屏幕截图.png

      对应的 SQL 代码是 :

    CREATE DATABASE `database name` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

    1. 在 Ubuntu 下使用 Navicat 会出现乱码,只要修改一下 start_navicat即可,编辑start_navicat,找到export LANG="en_US.UTF-8",把LANG部分改为zh_CN.UTF-8,重新启动 Navicat 。

    相关文章

      网友评论

          本文标题:解决写入中文数据到 MySql 时变成 ????

          本文链接:https://www.haomeiwen.com/subject/ktuyqftx.html