字符编码和字符集和编码引出的问题_FileReader读取GBK格式的文件
字符编码和字符集
字符编码
计算机中存储的信息都是用二进制数表示的,我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。
按照某种规则,将字符存储到计算机中,称为编码。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码。
比如:按照A规则存储,同样按照A规则解析,那么就能显示正确的文本符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。
编码:字符(能看懂的)-->字节(看不懂的)
解码:字节(看不懂的)-->字符(能看懂的)
>字符编码:就是一套自然语言的字符与二进制数之间的对应规则。
编码表:生活中文字和计算机中二进制的对应规则
字符集
>字符集Charset:也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。
计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有
ASCLL字符集、GBK字符集、Unicode字符集等。
ASCLL编码-->ASCLL字符集
GBK编码-->GBK字符集
UTF8编码、UTF16编码、UTF32编码-->Unicode字符集
当指定了编码,它所对应的字符集自然就指定了,所以编码才是我们最终要知道的。
编码引出的问题_FileReader读取GBK格式的文件
创建一个系统默认的编码文本进行读取
文件-->另存为-->选项ANSI系统默认编码格式进行读取
private static void show010() throws IOException { FileReader fr = new FileReader(new File("F:\\GBK.txt")); int len = 0; while ((len=fr.read())!=-1){ System.out.println((char)len); } fr.close(); }