关于java源程序编码格式的问题
源程序:publicclassMAIN{publicstaticvoidmain(String[]args){charc='机';Strings="机"System.ou...
源程序:
public class MAIN
{
public static void main(String[] args)
{
char c = '机';
String s = "机"
System.out.println(c);
System.out.println(s);
}
}
这段代码使用ANSII+GBK编码(jdk安装在windows xp简体中文版上)
请问,字符变量c和字符串对象s中储存的分别是什么?
是‘机’的GBK编码 BBFAh ?
还是‘机’的UTF-16(Big Endian)编码 673Ah ?
还是‘机’的UTF-16(Little Endian)编码 3A67h?
希望可以给出充分解释,或者相应的java标准。 展开
public class MAIN
{
public static void main(String[] args)
{
char c = '机';
String s = "机"
System.out.println(c);
System.out.println(s);
}
}
这段代码使用ANSII+GBK编码(jdk安装在windows xp简体中文版上)
请问,字符变量c和字符串对象s中储存的分别是什么?
是‘机’的GBK编码 BBFAh ?
还是‘机’的UTF-16(Big Endian)编码 673Ah ?
还是‘机’的UTF-16(Little Endian)编码 3A67h?
希望可以给出充分解释,或者相应的java标准。 展开
展开全部
Java内部都是用Unicode编码吧,跟平台无关
char c = '机';
c在Java内部用Unicode编码,两个字节
String s = "机"
s使用char类型构成的字符串,每个char是两个字节
至于你说的ANSII+GBK,应该是代码的编码方式,跟Java内部存储无关
char c = '机';
c在Java内部用Unicode编码,两个字节
String s = "机"
s使用char类型构成的字符串,每个char是两个字节
至于你说的ANSII+GBK,应该是代码的编码方式,跟Java内部存储无关
追问
嗯嗯,还有
String s = “中国ABC”;
这个字符串是使用unicode编码,含有5个字符,占用10个字节
是这样吗?
另外,java的字符和字符串储存的时候,是使用UTF-16(BE)还是UTF-16(LE)?
追答
是的,String基于char类型,都是2个字节/个
你可以使用以下代码获得十六进制编码方式
String str="中国ABC";
char[] cha=str.toCharArray();
for(c:cha)
{
System.out.println(Integer.toHexString(c));
}
打印出十六进制编码,你可以一一对照。按我的测试是UTF-16BE
至于到底采用何种方式存储,需要根据实际情况而定,给你个链接,找了半天,里面讲的还是比较详细的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询