UTF-8与GBK互转会乱码,为什么?编码不一致

UTF-8与GBK互转会乱码,为什么?编码不一致,第1张

乱码的本质就是: 读取二进制的时候采用的编码和最初将字符转换成二进制时的编码不一致。

UTF-8和GBK是两套中文支持较好的编码,所以经常会进行它们之间的转换.

1.UTF-8转换成GBK:鎴戜滑鏄 腑锲戒汉

UTF-8转换成GBK再转成UTF-8:我们是中国人

2. 以GBK编码再以UTF-8解码,再以UTF-8编码,再以GBK解码。

这次的运行结果是:

GBK转换成UTF-8: й

GBK转换成UTF-8再转成GBK:锟斤拷锟斤拷锟斤拷锟叫癸拷锟斤拷

把win10电脑的默认编码改成了UTF-8之后,使用IDEA运行普通的java项目时,如果包含了中文,运行main方法时 有时候会打印包含gbk字样的乱码,有时候甚至还编译失败,而更多的时候出现了打印中文乱码。搜了很多,也试了好多终于把这个问题解决了。

例如:

有些乱码,大致就是 GBK字符无法映射,就是中文不识别

在File ->settings ->Editor ->File Encoding中全部修改为utf-8:

有了中文插件后:

文件 ->设置 ->编辑器 ->文件编码 中全部修改为utf-8:

如下

修改选项-添加VM选项,填写 "-Dfile.encoding=utf-8" 如下图

关闭所有的idea项目,回到欢迎界面,在左下角的设置logo选择vm参数

添加文本 "-Dfile.encoding=utf-8",如下

1、编码是为了正常显示文字内容而设置的,要想正常的显示文字内容,文字本身的编码格式必须与显示端的编码格式一致;

2、国内常用的中文编码格式是:GBK(中国标准,包含全部中文字符,以双字节来显示中文和英文字符)、UTF-8(国际编码,包含世界各个国家的文字字符,通用性强);

3、浏览器用GBK编码显示乱码,说明浏览器所用的编码格式(GBK)与要显示的内容的编码格式不同,即要显示内容不是用GBK编码方式生成的,两者编码格式一致才能正常显示,否则就显示乱码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11743784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存