首页编程java编程5 java中的字符集使用什么编码 java采用什么字符集

5 java中的字符集使用什么编码 java采用什么字符集

编程之家2023-10-1195次浏览

其实5 java中的字符集使用什么编码的问题并不复杂,但是又很多的朋友都不太了解java采用什么字符集,因此呢,今天小编就来为大家分享5 java中的字符集使用什么编码的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

5 java中的字符集使用什么编码 java采用什么字符集

Java语言所使用的字符集是什么

Java语言所使用的字符集是16位Unicode编码。另外再介绍一些常见的字符集:

1、最早在dos下写pascal的时候,就遇到ASCII字符集,后来还是dos下写c,也是ascii字符集

特点:目前最通用的单字节编码字符集

5 java中的字符集使用什么编码 java采用什么字符集

表示:单字节

最早ascii用7bit表示,总共能表示2^7=128个字符,后来扩展到8bit,就表示2^8=256个字符

2、GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。

5 java中的字符集使用什么编码 java采用什么字符集

特点:当然是能表示99%的中国汉字,还包括拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母等

表示:双字节

3、GBK是汉字编码标准之一,全称《汉字内码扩展规范》,GBK向下与GB2312编码兼容,向上支持ISO10646.1国际标准。可以认为GBK是在GB2313基础上通过内码扩展出来的一个标准。

特点:完全兼容GB2312标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字

表示:双字节

4、Big5,台湾那边使用比较多。

5、GB 18030,全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。

特点:就是强大。覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。

表示:单字节、双字节、四字节三种方式

6、Unicode野心更大(当然有一个国际统一标准当然是好事)

特点:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

表示:utf-8,utf-16,utf-32

这里可能有点不好理解,举个例子

首先,把unicode理解成对所有字符做了一个统一的编号,比如:“字”这个字符,编号是23383,这个是unicode定义的

但是,在计算机中,如何存储这个编号呢?方式就有很多,存储unicode的方式,就是utf-8,utf-16,utf-32

23383数值的16进制表示:0x5b57

utf-8用3个字节来表示汉字,所以utf-8的表示为:0xE5AD97

utf-16用2个字节来表示汉字,所以utf-16的表示为:0x5b57刚好和数值是一样的

utf-32用4个字节来表示汉字,所以utf-32的表示为:0x00005b57和数值是一样的,不过浪费空间

7、再来讲讲utf-8,它是一种变长的字符集

表示:单字节来表示字母,双字节来表示一些希腊字母,三字节来表示汉字,当然也有四字节的

这么做当然会增加表示和识别的难度,不过,可以节省空间。这也是为什么utf-8在网络编码中流行的原因。

Java: 如何知道一个字符串当前是什么字符集

判断java字符串的字符集有多种方法,我们一一讨论如下:

1、通过把未知编码字符串,用猜想的编码再解码,观察字符串是不是正确还原了。

原理:假如目标编码没有数组中的字符,那么编码会破坏,无法还原。

缺点:假如字符少,而正巧错误的猜想编码中有这种字节,就会出错。

如:new String("tested str".getBytes("enc"),"enc")

2、大多数时候,我们只要判断本地平台编码和utf8,utf8编码相当有规律,所以可以分析是否是utf8,否则使用本地编码。

原理:分析byte[]来判断规律。

缺点:有时,个别本地编码字节在utf8中也会出现,导致出错,需要分析。

如:判断是否utf-8代码:

public static boolean isValidUtf8(byte[] b,int aMaxCount){

int lLen=b.length,lCharCount=0;

for(int i=0;i

byte lByte=b[i++];//to fast operation,++ now, ready for the following for(;;)

if(lByte>=0) continue;//>=0 is normal ascii

if(lByte<(byte)0xc0|| lByte>(byte)0xfd) return false;

int lCount=lByte>(byte)0xfc?5:lByte>(byte)0xf8?4

:lByte>(byte)0xf0?3:lByte>(byte)0xe0?2:1;

if(i+lCount>lLen) return false;

for(int j=0;j=(byte)0xc0) return false;

}

return true;

}

3.按编码规则,一字字比照。

优点是错物更少,缺点是太费资源。

java采用什么字符集

Java语言所使用的字符集是16位Unicode编码。另外再介绍一些常见的字符集:

1、最早在dos下写pascal的时候,就遇到ASCII字符集,后来还是dos下写c,也是ascii字符集

特点:目前最通用的单字节编码字符集

表示:单字节

最早ascii用7bit表示,总共能表示2^7=128个字符,后来扩展到8bit,就表示2^8=256个字符

2、GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。

特点:当然是能表示99%的中国汉字,还包括拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母等

表示:双字节

3、GBK是汉字编码标准之一,全称《汉字内码扩展规范》,GBK向下与GB2312编码兼容,向上支持ISO10646.1国际标准。可以认为GBK是在GB2313基础上通过内码扩展出来的一个标准。

特点:完全兼容GB2312标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字

表示:双字节

4、Big5,台湾那边使用比较多。

5、GB 18030,全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。

特点:就是强大。覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。

表示:单字节、双字节、四字节三种方式

6、Unicode野心更大(当然有一个国际统一标准当然是好事)

特点:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

表示:utf-8,utf-16,utf-32

这里可能有点不好理解,举个例子

首先,把unicode理解成对所有字符做了一个统一的编号,比如:“字”这个字符,编号是23383,这个是unicode定义的

但是,在计算机中,如何存储这个编号呢?方式就有很多,存储unicode的方式,就是utf-8,utf-16,utf-32

23383数值的16进制表示:0x5b57

utf-8用3个字节来表示汉字,所以utf-8的表示为:0xE5AD97

utf-16用2个字节来表示汉字,所以utf-16的表示为:0x5b57刚好和数值是一样的

utf-32用4个字节来表示汉字,所以utf-32的表示为:0x00005b57和数值是一样的,不过浪费空间

7、再来讲讲utf-8,它是一种变长的字符集

表示:单字节来表示字母,双字节来表示一些希腊字母,三字节来表示汉字,当然也有四字节的

这么做当然会增加表示和识别的难度,不过,可以节省空间。这也是为什么utf-8在网络编码中流行的原因。

好了,文章到这里就结束啦,如果本次分享的5 java中的字符集使用什么编码和java采用什么字符集问题对您有所帮助,还望关注下本站哦!

java中回车的字符是什么 java中的回车字符学java要知道什么代码 Java程序员需要学习哪些基础知识