编码格式

原创 2017年10月12日 20:44:25

编码

获得编码下的byte值

        String str4 = "中";
        System.out.println(Arrays.toString(str4.getBytes("编码格式")));

1. GBK

● 包含了基本上所有的中国字,前127位是ASCII编码,再127是 西欧字符,然后是中国字、
● 汉字是由大于128两个字节组成的,如“中”字,从-128到127可以看成一个循环,128相当于-128,214就是-42,208就是-28.
● 测试编码

        byte[] bs = {(byte)214,(byte)208};
        String str = new String(bs);
        System.out.println(str);

        byte[] bs3 = {-42,-48};
        String str3 = new String(bs3);
        System.out.println(str3);

2.GBK2312

● 等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存呢。于是国人就自主研发,把那些127号之后的奇异符号们直接取消掉。规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的”全角”字符,而原来在127号以下的那些就叫”半角”字符了。

3.UNICODE

● 因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码。当时的中国人想让电脑显示汉字,就必须装上一个”汉字系统”,专门用来处理汉字的显示、输入的问题,装错了字符系统,显示就会乱了套。这怎么办?就在这时,一个叫 ISO (国际标谁化组织)的国际组织决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!他们打算叫它”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “UNICODE”。

4.UTF-8

● UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。
● 于是就会有人产生疑问,UTF-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 GBK 等编码的人?因为 UTF-8 等编码体积比 较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用 GBK 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,电脑性能 也已经足够无视这点性能的消耗了。所以推荐所有的网页使用统一编码:UTF-8。
● 测试编码

    byte[] bs2 = {(byte)228,(byte)184,(byte)173};
    String str2 = new String(bs2,"utf-8");
    System.out.println(str2);

5.UTF-16

● 测试编码

    int a = 0x4E;
    int b = 0x2D;
    byte[] bs1 = {(byte)a,(byte)b};
    String str1 = new String(bs1,"utf-16");
    System.out.println(str1);

6.UTF-16转换成UTF-8规则

如:汉字“中”
UTF-16二进制编码为:
11111110 11111111 01001110 00101101
UTF-8二进制编码为:
11100100 10111000 10101101
转换如下图:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

Tajima 绣花机 花型数据编码格式

  • 2015年08月18日 12:13
  • 83KB
  • 下载

c#中各种编码格式的区别

最近了解了一下C#中Encoding的不同编码方式的区别,和大家分享一下,如果有不对的地方还请各位批评指教。   简单的说,为什么需要编码? 比如,我们的计算机中需要表示字母'a','b'...

红外遥控编码格式

  • 2016年04月10日 18:30
  • 492KB
  • 下载

由float类型与0比较学习浮点型编码格式

IEEE浮点标准用V=(-1)^s * M * 2^E的形式来表示一个数: (1)符号(sign)s决定数是负数(s=1)还是正数(s=0),而对0的符号位作为特殊情况处理。 (2)有效数...

python 设置文件编码格式

转载自:http://blog.csdn.net/abyjun/article/details/50190243 如果要在python2的py文件里面写中文,则必须要添加一行声明文件编码的注释,...

NEC红外编码格式

  • 2014年06月07日 00:05
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码格式
举报原因:
原因补充:

(最多只允许输入30个字)