编码表的概述和常见编码表

引出编码表:

  我们知道,初学IO的时候使用字节流的read()针对中文操作输出的时候可能出现中文乱码。这是为什么呢?因为myeclipes在默认情况下,使用的编码表示ASCII表,中文是两个字节存储的,ASCII表示一个字节代表一个字符,强行将中文拆分成两个字节进行解析就会找不到对应字符出现?或者找到的字符不可能是中文的。ASCII码讲中文拆分成两个字节。第一个字节的对应位置一定是负数,第二个常见是负数,可能是正数。

编码表:

  由现实世界的字符和其对应的数值组成的一张表,用来解析和转换各种字符

常见的编码表

  ASCII码表:7位表示一个数据,一个字节表示一个字符。最高位是符号位

    ‘a' 97   ’A' 65  0 48

  

  ISO-8859-1:拉丁码表   8位表示一个数据

  GB2312:中国的简体中文编码表

  GBK:中国的简体中文编码表升级

  GB18030:GBK的取代版本

  BIG-5:繁体中文编码表,俗称“大五码”

  Unicode:国际标准码,融合了各种文字

       所有文字都用两个字节表示,java语言使用的就是Unicode编码

  UTF-8:国际化编码表,升级版

      最多能用三个字节表示一个字符。就是能用一个字节表示的字符就使用一个字节表示(兼容ASCII),一个用不了的就用两个,实在还不行就使用三个。

编码问题引发小例子:

比如,中国在gbk编码表示的是  10000 和20000

直接到日本的话,日本编码使用shift-JIS  10000   20000分别代表的是か ら,转换过去就曲解了原来的含义了。

原文地址:https://www.cnblogs.com/aigeileshei/p/5573707.html