编码格式

原创 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
转换如下图:
这里写图片描述

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

myeclipse如何设置编码格式

以前一直在用eclispe做开发,最近在测试一个Socket通信功能。所以就弄了一个myeclipse和eclipse一起玩。为了适应代码间的相互拷贝将eclipse和myeclipse的编码模式都设...
  • sz0268
  • sz0268
  • 2016年07月12日 09:21
  • 658

编码格式

 1、首先对中文字符进行两次escape()编码,如要传参数name,值为“你好”,则url的格式为....name=escape(escape("你好")),这样一来,在request.getPar...
  • luckyspring
  • luckyspring
  • 2007年06月27日 21:33
  • 679

mysql修改默认编码格式

MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8。 1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:...
  • mvpme82
  • mvpme82
  • 2012年10月10日 15:45
  • 10903

mysql全局编码格式修改和数据库实例的编码格式修改

修改数据库全局编码格式: 1.命令行登录mysql  C:\Users\Administrator>mysql -u root -p  Enter password:  Welcome to ...
  • hu_shengyang
  • hu_shengyang
  • 2014年08月14日 21:33
  • 7911

String.getBytes() 与编码格式

在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不通OS下,返回的东西不一样! String.getBytes(String d...
  • u013634928
  • u013634928
  • 2015年09月22日 00:07
  • 2764

查看及修改oracle编码格式方法

--查看oracle数据库字符集: select * from V$NLS_PARAMETERS   select userenv('language') from dual;   查询...
  • cflulu
  • cflulu
  • 2016年12月14日 22:46
  • 801

C++ 与 字符编码格式

ASCII码是表示字符的基本编码,由于它是8位字节编码,只能表示256个字符。事实上在早期,ASCII是7位,英文的主要字符都小于128,后来扩展到8位,用大于128的编码表示特殊图形标记。 当计算...
  • markman101
  • markman101
  • 2012年12月10日 11:55
  • 4555

获取字符串的编码格式

public static String getEncoding(String str) { String encode = "GB2312"; tr...
  • sinat_19171485
  • sinat_19171485
  • 2015年05月26日 15:59
  • 396

XML 编码格式

http://news.newhua.com/news/2006/0118/7353.shtml   如何使 XML 文件在不同的平台间正确地传递数据。他们创建了 XML 文档,键入了数据,粘上了...
  • Lyncai
  • Lyncai
  • 2012年07月14日 16:46
  • 12066

Linux 设置编码格式&乱码

在windows  通过 SSH 工具往Linux服务器上传     中文文件   可能会遇到   乱码问题 解决方案 编辑/etc/sysconfig/i18n这个文件 方...
  • Super_Big_Sun
  • Super_Big_Sun
  • 2017年06月01日 20:09
  • 1675
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码格式
举报原因:
原因补充:

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