UTF-8 GBK UTF8 GB2312之间的区别和关系,Java中String和byte[]间的转换,byte 是怎样转为汉字,汉字转byte的;char与

简介: UTF-8 GBK UTF8 GB2312之间的区别和关系,Java中String和byte[]间的转换,byte 是怎样转为汉字,汉字转byte的;char与

UTF-8 GBK UTF8 GB2312之间的区别和关系



gbk和utf-8就好比ascii一样一个特定数对应一个字符,gbk和utf-8比ascii要大得多;


1、GBK通常指GB2312编码 只支持简体中文字

2、utf通常指UTF-8,支持简体中文字、繁体中文字、英文、日文、韩文等语言(支持文字更广)

3、通常国内使用utf-8和gb2312,看自己需求选择


UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。

GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大。


80220a5fe6344225ba068436533d59ef_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


Java中String和byte[]间的转换



byte[] byteArray = {'w'};
        String str = new String(byteArray);
        byte[] qun = str.getBytes();
        String coding = "GBK";
        String ceshi = "张继";
        byte re[] = ceshi.toString().getBytes(coding);
        String re1 = new String(re,coding);
        System.out.println(qun);
        System.out.println(re.toString());
        System.out.println(re1);
        System.out.println(ceshi.hashCode());
        System.out.println(System.identityHashCode(qun));
        System.out.println(System.identityHashCode(re));

byte 是怎样转为汉字,汉字转byte的;通过的就是gbk和utf-8,


GBK-unicode对照:GBK-unicode对照_楼边斜月为明的博客-CSDN博客

张:张    (gbk) d5c5      5f20

解说:“张”的byte:-43,-59  这是byte直接输出,转为int 输出是213,103,再转为16进制:  d5c5就是GBK的:张


char与byte的区别


byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。


char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;


char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。

目录
相关文章
|
23小时前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
8 1
|
5天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
|
8天前
|
存储 缓存 安全
【 Java中String源码分析(JVM视角你不来看看?】
【 Java中String源码分析(JVM视角你不来看看?】
13 0
|
13天前
|
安全
String、StringBuuffer、StringBuilder三者的区别
String、StringBuuffer、StringBuilder三者的区别
|
14天前
|
Java
Java String类型转换成Date日期类型
Java String类型转换成Date日期类型
|
14天前
|
Java 索引
Java String应用与开发
Java String应用与开发
22 0
|
18天前
Swagger2异常:java.lang.NumberFormatException: For input string: ““
Swagger2异常:java.lang.NumberFormatException: For input string: ““
20 1
|
18天前
|
缓存 安全 Java
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
9 0
|
18天前
|
存储 缓存 Java
|
19天前
StringBuilder和StringBuffer区别是什么?
StringBuilder和StringBuffer区别是什么?