MySql与Java交互的编码问题

向mysql表中添加中文字符变成 ?

MySql与Java交互的编码问题_第1张图片
图一:字符写入变成?

解决方案:

一:遇到这种问题肯定是字符集造成的,先检查数据库,表的字符集,都是utf8;

然后看页面,程序等等等等都是utf8都没问题,然后将连接字符串改为jdbc:mysql://xxxxx:3306/dbname?useUnicode=true&characterEncoding=utf-8解决问题了。

如果你的连接串是在xml文件中,请将&改为&客户端连接的时候默认似乎是GBK的,所以指定为utf8.

二:检查表属性;

MySql与Java交互的编码问题_第2张图片
图二:表属性

将数据库的表属性都设置成utf-8;

3:用show variables like 'character%'查看mysql的字符编码;


MySql与Java交互的编码问题_第3张图片
图三:MySql编码格式

如果其中有编码格式不是utf8的,除character_set_filesystem和character_sets_dir,将其它的改为utf8就可以了 ,

修改方式:通过sql语句;

通过MySQL命令行修改:

mysql> set character_set_client=utf8;

mysql> set character_set_connection=utf8;

mysql> set character_set_database=utf8;

mysql> set character_set_results=utf8;

mysql> set character_set_server=utf8;

mysql> set character_set_system=utf8;

mysql> set collation_connection=utf8;

mysql> set collation_database=utf8;

mysql> set collation_server=utf8;

通过修改配置文件:

文件默认位置:C:\Program Files\MySQL\MySQL Server 5.5\my.ini


MySql与Java交互的编码问题_第4张图片
图四:修改文件

最后修改完毕重启服务:

运行cmd;

停止服务:net stop mysql;

开启服务:net start mysql;

你可能感兴趣的:(MySql与Java交互的编码问题)