前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么会有中文乱码?

为什么会有中文乱码?

作者头像
用户10604450
发布2024-03-15 13:50:49
990
发布2024-03-15 13:50:49
举报
文章被收录于专栏:练习两年半练习两年半

何为乱码

在文件中所看到的字符串是系统把内存中的数据转换成二进制数再解码成一些字符最后显示,就是当你双击打开一个文本文件时系统会把内存的数码信息读取显示出来,当你保存一个文本文件时系统会把这个文件以你所设置的编码方式编码,再放进内存中。

编码方式是什么东西?

编码方式其实是一种计算机的存储规则,常见的字符集有UTF-8,GBK,GB2312。每种字符集都会在它所包含的字符和字节之间建立映射关系。而一个字节就是8个二进制位。所以你也可以把字符集看成是字符和二进制数进行转换的公式或映射表。

一个中文字符以utf-8编码会转成3个byte,如果以gbk编码会转成2个byte;

一个英文字符以utf-8编码会转成1个byte,如果以gbk编码会转成1个byte。

乱码产生原因

原因1.读取数据时未读完整个汉字

我们知道字节流读取数据时,一次只读取一个字节,英文字母只有一个字节存取,所以不会出现乱码,而idea默认的编码规则UTF-8(二进制)对中文的编码是3个字节,读取数据时未读完整个汉字自然会出现乱码。

原因2.编码和解码的方式不统一

如果创建本地文件,而其编码规则是GBK时,GBK的中文是占2个字节,而解码时使用编码规则是UTF-8,两个方式不统一,数据接受不完整会出现乱码

如何避免产生乱码?

1.不要用字节流读取文本文件,针对文本文件使用字符流。

2.编码解码时使用同一个编码方式

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 何为乱码
  • 编码方式是什么东西?
  • 乱码产生原因
  • 如何避免产生乱码?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档