开发编程学习~字符编码表总结

来源:互联网 发布:柱状图数据ae模板 编辑:程序博客网 时间:2024/06/05 08:14

字符编码表

在开发中我们有时会遇到乱码问题,其实大多数情况就是字符编码表不一致导致的,在生活中也会遇到这样的问题,比如网上下载别人的文档,打开发现乱码。因此我们有必要了解一下什么是字符编码表。

我们知道计算机底层数据存储的都是二进制数据,而我们生活中的各种各样的数据,如何才能和计算机中存储的二进制数据对应起来呢?

这时老美他们就把每一个字符和一个整数对应起来,就形成了一张编码表,老美他们的编码表就是ASCII表。其中就是各种英文字符对应的编码。

编码表:其实就是生活中字符和计算机二进制的对应关系表。

1ascii: 一个字节中的7位就可以表示。对应的字节都是正数。0-xxxxxxx

2iso-8859-1:拉丁码表latin,用了一个字节用的8位。1-xxxxxxx  负数。

3GB2312:简体中文码表。包含6000-7000中文和符号。用两个字节表示。两个字节都是开头为1,两个字节都是负数。

   GBK:目前最常用的中文码表,2万的中文和符号。用两个字节表示,其中的一部分文字,第一个字节开头是1,第二字节开头是0

    GB18030:最新的中文码表,目前还没有正式使用。

4unicode:国际标准码表:无论是什么文字,都用两个字节存储。

l Java中的char类型用的就是这个码表。char c = 'a';占两个字节。

l Java中的字符串是按照系统默认码表来解析的。简体中文版 字符串默认的码表是GBK。

5UTF-8:基于unicode,一个字节就可以存储数据,不要用两个字节存储,而且这个码表更加的标准化,在每一个字节头加入了编码信息

能识别中文的码表:GBKUTF-8;正因为识别中文码表不唯一,涉及到了编码解码问题。

对于我们开发而言;常见的编码 GBK  UTF-8  ISO-8859-1

文字--->(数字):编码: 就是看能看懂内容,转换成看不懂的内容。

(数字)--->文字  :解码: 就是把看不懂的内容,转换成看懂的内容。


总结:编码和解码参照的编码表不一样大多数情况下都会出现乱码情况,比如参照UTF-8编码的文档,他存储一个英文用一个字节,读取的时候也会默认一次读取一个,而GBK默认是两个,读取的时候也就会是两个。这个时候如果我们用UTF-8格式去解析GBK编码格式文档,当读取一个字节信息它就开始参照编码表格式解析一个字,,这个时候的结果就是乱码了。通俗的说不同的把编码表就像不同的密码本,他们都有一套属于自己的解码和编码格式,因此如果参照一个编码表去解析另一种编码方式加密的文档,肯定是不能真确的解析出来的,这个时候也就乱码了。

原创粉丝点击