开发者社区> 问答> 正文

win10+java+mysql5.6的编码问题,数据库报错

"

我网上也找了好久。但还是不能解决。问题是这样的:我的在DOS下,工具navicat下都可以插入中文,可是我在mybatis里xml下写一个插入中文的语句,就显示??。环境截图如下:

网上试了很多方法。都不行。上面的'variables'也只能当前命令下更改,无法永久更改。反正我java里已插入中文就显示??。但别的方式里插入能正常显示。我觉得关键问题是我无法永久更改'character_set_%'编码!

请详细点回答。许多方式都试过了。

" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/d813943c66f143ff8e3c5930626914fd.png)

展开
收起
python小菜菜 2020-06-01 19:56:27 863 0
1 条回答
写回答
取消 提交回答
  • "

    mysql.ini

    [mysqld]

    default-character-set=utf8

    ######正解######你统一编码就好,根据你的截图,你可以看到,你数据库的编码格式是拉丁文,就算你传入的是中文,这里编码也是错的,你的连接,结果集都是GBK,你用UTF读gbk的数据肯定有问题,所以你统一你的编码,数据库的编码以及结果集,链接都改掉就好, character_set_%可以改掉的,在你mysql的配置文件里加入character_set_server=utf8  init_connect='SET NAMES utf8'  

    ######回复 @xpbob : 我也没有哈######回复 @求是科技 : 嗯,自己是亲测的,但是default-character-set的做法我原先做没成功,你成功过吗######正解,看来是配置过的哈######mysql配置文件改起######

    谢啦,我重新装了一次,发现原来是我的配置文件有问题。我手动把后缀名ini加到文件名上去了。难怪我怎么改配置文件名都没用。谢谢啦,大家的耐心回答。

    之后我的配置文件是这样的:

    mysql.ini文件

    [mysqld]

    character_set_server=utf8

    [client]

     default-character-set=utf8.

    show了一下之后就成utf-8了。


    ######

    看楼主的图片, 我再一次想到了那一句:

    mysql有utf-8吗? 

    图片中那utf-8是什么鬼? 

    ######回复 @顿顿顿顿文 : 你再看一次.######不仅有utf8 还是utf8mb4######全部使用utf8编码,mybatis相关链接配置也设置为使用utf8编码,就不会出现问题" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/8e0d05df587b4bf6b5960b726feef79d.png)
    2020-06-01 19:56:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载

相关镜像