MySql与Java交互的编码问题

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

图一:字符写入变成?

解决方案:

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

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

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

二:检查表属性;

图二:表属性

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

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


图三: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


图四:修改文件

最后修改完毕重启服务:

运行cmd;

停止服务:net stop mysql;

开启服务:net start mysql;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容