数据库乱码
转自:https://blog.csdn.net/weixin_44874132/article/details/119352575
问题描述:
在前端输入数据,数据中包含字母,数字,中文,将输入的中文落库,然后查询数据库发现落库的数据字母,数字均是正常的,但输入中文落库却是乱码。
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覆盖,这个就是勾选以后造成的影响。
2.更改连接数据库时的基本配置。
在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格式编码数据,最后再将数据返回给客户端。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)