存入数据库的数据出现中文乱码的解决方案

问题描述
在前端输入数据,数据中包含字母,数字,中文,将输入的中文落库,然后查询数据库发现落库的数据字母,数字均是正常的,但输入中文落库却是乱码。

尝试在不动代码进行乱码的解决方案
1.本项目在idea上进行编码的,因此首先想到的解决方案是更改编译器的默认编码格式。
打开编译器的File–>Settings–>Editor–>File Encodings,设置如下:
在这里插入图片描述
按照上图所示的,将红线圈住的地方全部设置成utf-8编码格式的,然后Apply再保存即可。

此处拓展一个问题:
Transparent native-to-ascii conversion 勾选还是不勾选呢?
Transparent native-to-ascii conversion的意思是:自动转换ASCII编码。
他的工作原理是:在文件中输入文字时他会自动的转换为ASCII编码,然后在idea中打开文件时他会自动转回指定的编码来显示。这样做是为了防止文件乱码。

知道了它的作用,那么到底够选还是不勾选呢?
这个得看应用场景:
第一种:勾选。在properties敲中文的备注和中文的待读取内容:1.取消勾选以后,看到到中文全都转成ASCII;2.其他团队成员拉取到的代码是ASCII;3.push到git上面是ASCII。也就是说比如有同事用的eclipse用中文写的备注,你这边编辑以后push会把原来中文的注释全都用ASCII覆盖,这个就是勾选以后造成的影响。

第二种:不勾选。在properties敲中文的备注,取消勾选以后看到的也是中文,因为它本身不是ASCII没法转码,暂时没发现什么问题;在properties敲中文的待读取内容,代码读取到的是乱码,这个是我遇到的问题,我把这些中文换成ASCII,读取到的就是正常的了。

2.在pom文件里面中的properties标签中增加如下的基础配置

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

如下图所示:
在这里插入图片描述

上述配置文件的作用:让整个项目统一以utf-8进行字符集编码

3.落库嘛,自然想到更改连接数据库时的基本配置。
在url配置项后面添加如下配置(有的情况下要加上serverTimezone=UTC):

useUnicode=true&characterEncoding=utf8&serverTimezone=UTC

如下图所示:
在这里插入图片描述
useUnicode=true&characterEncoding=utf-8的作用:
例如:数据库采用utf-8,项目数据库用的是utf-8
1.存数据时,数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用UTF-8编码存放到数据库中。
2.取数据时,数据库会先将数据库中的数据按UTF-8格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

改动代码的方案后续补上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶枫^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值