共计 1739 个字符,预计需要花费 5 分钟才能阅读完成。
本文丸趣 TV 小编为大家详细介绍“mysql 插入中文数据变成问号如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql 插入中文数据变成问号如何解决”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。
mysql 插入中文数据变成问号
第一步:首先检验一下你自己的代码基本配置
1.Jdbc.properties 数据库配置文件后面是不是加了 characterEncoding=utf-8,如下图所示:
发现没有的话别傻看着,赶紧加起来
2.web.xml 有没有配置编码过滤器,就像是这种
没有的话你自己看着办,嘿嘿,为了方便你们复制在下面写一下(是不是很贴心)
!-- 配置编码过滤器 --
filter
filter-name characterEncodingFilter /filter-name
filter-class org.springframework.web.filter.CharacterEncodingFilter /filter-class
init-param
param-name encoding /param-name
param-value utf-8 /param-value
/init-param
/filter
第二步:当你发现上面两个文件都没有问题的话,我们就来看看这个配置文件啦.
1. 看数据库编码格式
先登录服务器,进到你的数据库,登录数据库命令(下面的数据库名指的是你创建的数据库名称,比如说 test):
mysql -u root -p 数据库名
然后执行下面的命令查看你数据库的编码格式
show variables like lsquo;char% rsquo;;
就是这个 latin1 在作怪,那么这个问题怎么解决呢?不要心急往下看.
2. 修改 mysql 内部配置文件
先声明一下,最新下载的官网 mysql 安装包貌似都是没有 my.ini 文件,但是一定有 my.cnf 文件,这个时候你就应该去你服务器看下在哪,当然一般都在根目录下的 etc/ 下面。
命令行:vim my.cnf
【核心】执行 i 命令进入编辑模式,在 [mysqlid] 下面新增下面一句话,也就是汉字编码格式兼容
character-set-server=utf8
:wq 命令保存并退出。
3. 重启 mysql 大功告成
我的是在根目录的 bin 下面执行这两个实现停启
systemctl stop mysqld.service
systemctl start mysqld.service
然后你可以很自豪的登录 mysql,执行上面这个命令查看你数据库的编码格式
show variables like ‘char%
是不是很惊喜很意外,哈哈哈哈。
最终经过不泄的努力,总算是把这个中文数据录入进去了,哈哈哈哈,真服自己,都想给自己转个钱啥的,问号什么的可以滚一边去了。
问题解决
存入 mysql 的汉字变成问号项目场景
mySql 5.7
java
配置文件:spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useSSL=false
插入操作:
@Insert(INSERT INTO foods(food_name,food_taste,food_price,food_description) VALUES (#{foodName},#{foodTaste},#{foodPrice},#{foodDescription}) )
int insert(Food food);
问题描述
存入数据库后汉字变成????
原因分析:
连接数据库的设置需要制定字符集
解决方案
解决方法:数据源里面增加 useUnicode=true characterEncoding=UTF-8
spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true characterEncoding=UTF-8 useSSL=false
wenti
读到这里,这篇“mysql 插入中文数据变成问号如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。