在java里面的编码问题是一个非常常见的问题,最近在玩网络爬虫,在我写的一个最简单的爬虫示例里面,我发现我爬知乎首页和百度百科的源代码出现了乱码。知乎的首页爬出来的数据,中文能正常显示,而百度百科的首页爬出来的数据中文全部是乱码。这让我想起来总结一下java中编码 中文乱码的问题,不能每次出错了就百度,要搞清楚其中的原理,顺便做个总结。
1. 问题的起源
对于计算机而言,它只认识0和1,不管是在本地磁盘还是内存中,所有的数据(包括文本,图片,视频)等等都是以二进制的形式保存。
字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。
字符的编码:不同字符对应于二进制的规则。
字符编码的集合就是字符集。
在早期,只在老美那儿,只需要编码26个字母和一些常用的特殊字符,所以一个字节完全够用。但是随着计算机技术的发展ÿ