java编码方式是utf-8,还是utf-16?

时间:2023-01-10 22:13:02
java编码方式是utf-8,还是utf-16?,老师说是utf-16,我认为是utf-8,编译器也默认是utf8,高手请指教。

29 个解决方案

#1


看你的版本,比较新的是的。

#2


utf-16,前两天笔试,有个考察标识符的选择题,其中有个汉字,从没见过java可以用中文做标识符的。回来再Eclipse中试了一下,能用。一个汉字是两个字节。十六位,而UTF-8无法表示汉字。所以是十六位。

#3


是utf-16

#4


UTF-8就是以8位为单元对UCS进行编码
UTF-16以16位为单元对UCS进行编码
UTF-8以字节为编码单元,没有字节序的问题。
UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序
一般默认的情况下是unicode的utf-8
你的编译器与操作系统有关。
没有绝对的。

#5


java中采用的是unicode标准字符集

       Java语言使用unicode标准字符集,最多可以识别65535个字符,unicode字符表的前128个字符刚好是ASCII表。每个国家的“字母表”的字母都是unicode表中的一个字符,比如汉字中的“你”字就是unicode表中的第20320字符。

       Java所谓的字母包括了世界上任何语言中的“字母表”,因此,Java所使用的字母不仅包括通常的拉丁字母,a,b,c等,也包括汉语中的汉字,日文里的片假名,平假名,朝鲜文以及其他许多语言中的文字。

#6


java平台的默认编码是Unicode码吧。
你是怎么判断编译器的默认编码方式的?

#7


16

#8


一般默认的情况下是unicode的utf-8,原来是utf-16啊,不知道啊,学习了

#9


是utf-16?

#10


受教了,还有这说法

#11


Java 既不是Utf-8 也不是 Utf-16 而是 Unicode编码

#12



System.out.println(java.nio.charset.Charset.defaultCharset);

#13


Java的默认编码取决于你的操作系统 中文系统大多都是UTF-8

#14


Java的class文件采用utf8的编码方式,JVM运行时采用utf16,Java的字符串是unicode编码的。

#15


java 编译器也默认是utf-16

#16


学习

#17


16

#18


UTF-8

#19


只是表示的汉字个数不一样

#20


 学习 

#21


Java内字符编码是Unicode的,class文件采用utf8的编码方式,jvm运行时采用utf16。

至于12#加内特兄弟说的,那句代码(他少写了后面的括号啊~~呵呵):
System.out.println(java.nio.charset.Charset.defaultCharset());


用到这句话一般是因为Java要处理外部文件的时候需要判断操作系统默认的字符集,如果你要是在中文XP系统下面运行的话,那么返回的就是GBK了,而如果你是运行在Ubuntu系统下面,则是Unicode。不知道为啥有人说中文的系统都是UTF-8,XP默认就是GBK的。

#22


unicode

#23


mark 

#24


受教了,虽然还不太明白。

#25


unicode和utf-8根本是两码事,问题也不说明白,是字符编码还是字节编码

#26


不一定可以是utf-8,也可以是utf-16

#27


这是和你的编译器和操作系统有关系的。
java的内部编码是Unicode

#28


引用 21 楼 justinavril 的回复:
Java内字符编码是Unicode的,class文件采用utf8的编码方式,jvm运行时采用utf16。

至于12#加内特兄弟说的,那句代码(他少写了后面的括号啊~~呵呵):
Java codeSystem.out.println(java.nio.charset.Charset.defaultCharset());

用到这句话一般是因为Java要处理外部文件的时候需要判断操作系统默认的字符集,如果你要是在中文XP系统下面运行的话,那么返回的就是GBK了,而如果你是运行在Ubuntu系统下面,则是Unicode。不知道为啥有人说中文的系统都是UTF-8,XP默认就是GBK的。


是的,中文系统是默认是GBK,日文默认是MS932。
首先我们做项目的时候 ,创建工程的时候就选择自己想要的编码方式,一般都会选用UTF-8,因为它支持的文字种类多。

#29


受教

#1


看你的版本,比较新的是的。

#2


utf-16,前两天笔试,有个考察标识符的选择题,其中有个汉字,从没见过java可以用中文做标识符的。回来再Eclipse中试了一下,能用。一个汉字是两个字节。十六位,而UTF-8无法表示汉字。所以是十六位。

#3


是utf-16

#4


UTF-8就是以8位为单元对UCS进行编码
UTF-16以16位为单元对UCS进行编码
UTF-8以字节为编码单元,没有字节序的问题。
UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序
一般默认的情况下是unicode的utf-8
你的编译器与操作系统有关。
没有绝对的。

#5


java中采用的是unicode标准字符集

       Java语言使用unicode标准字符集,最多可以识别65535个字符,unicode字符表的前128个字符刚好是ASCII表。每个国家的“字母表”的字母都是unicode表中的一个字符,比如汉字中的“你”字就是unicode表中的第20320字符。

       Java所谓的字母包括了世界上任何语言中的“字母表”,因此,Java所使用的字母不仅包括通常的拉丁字母,a,b,c等,也包括汉语中的汉字,日文里的片假名,平假名,朝鲜文以及其他许多语言中的文字。

#6


java平台的默认编码是Unicode码吧。
你是怎么判断编译器的默认编码方式的?

#7


16

#8


一般默认的情况下是unicode的utf-8,原来是utf-16啊,不知道啊,学习了

#9


是utf-16?

#10


受教了,还有这说法

#11


Java 既不是Utf-8 也不是 Utf-16 而是 Unicode编码

#12



System.out.println(java.nio.charset.Charset.defaultCharset);

#13


Java的默认编码取决于你的操作系统 中文系统大多都是UTF-8

#14


Java的class文件采用utf8的编码方式,JVM运行时采用utf16,Java的字符串是unicode编码的。

#15


java 编译器也默认是utf-16

#16


学习

#17


16

#18


UTF-8

#19


只是表示的汉字个数不一样

#20


 学习 

#21


Java内字符编码是Unicode的,class文件采用utf8的编码方式,jvm运行时采用utf16。

至于12#加内特兄弟说的,那句代码(他少写了后面的括号啊~~呵呵):
System.out.println(java.nio.charset.Charset.defaultCharset());


用到这句话一般是因为Java要处理外部文件的时候需要判断操作系统默认的字符集,如果你要是在中文XP系统下面运行的话,那么返回的就是GBK了,而如果你是运行在Ubuntu系统下面,则是Unicode。不知道为啥有人说中文的系统都是UTF-8,XP默认就是GBK的。

#22


unicode

#23


mark 

#24


受教了,虽然还不太明白。

#25


unicode和utf-8根本是两码事,问题也不说明白,是字符编码还是字节编码

#26


不一定可以是utf-8,也可以是utf-16

#27


这是和你的编译器和操作系统有关系的。
java的内部编码是Unicode

#28


引用 21 楼 justinavril 的回复:
Java内字符编码是Unicode的,class文件采用utf8的编码方式,jvm运行时采用utf16。

至于12#加内特兄弟说的,那句代码(他少写了后面的括号啊~~呵呵):
Java codeSystem.out.println(java.nio.charset.Charset.defaultCharset());

用到这句话一般是因为Java要处理外部文件的时候需要判断操作系统默认的字符集,如果你要是在中文XP系统下面运行的话,那么返回的就是GBK了,而如果你是运行在Ubuntu系统下面,则是Unicode。不知道为啥有人说中文的系统都是UTF-8,XP默认就是GBK的。


是的,中文系统是默认是GBK,日文默认是MS932。
首先我们做项目的时候 ,创建工程的时候就选择自己想要的编码方式,一般都会选用UTF-8,因为它支持的文字种类多。

#29


受教