String.getBytes().length每台机器上得到的值为什么不同查处来的数据是韩文3个字在我机器上得到的值是6.
在其他机器上得到的值是3.不知道为什么不一样。例如:
"안녕해".getBytes().length=值可能是3或6不知道得到的值是因为什么。
是因为数据库不同吗。我这面的数据库是NLS_LANG=AMERICAN_AMERICA.AL32UTF8,而另外数据库是US7ASCII。还有不同点是我机器是中文系统,tomcat+eclipse+oracle(AMERICAN_AMERICA.AL32UTF8)得到的值是
"안녕해".getBytes().length=3另外机器,是韩文操作系统tomcat+eclipse+oracle(US7ASCII)得到的值是"안녕해".getBytes().length=6.
不知道这个getBytes()的值是因为什么不同,导致得到的值不一样的?
在其他机器上得到的值是3.不知道为什么不一样。例如:
"안녕해".getBytes().length=值可能是3或6不知道得到的值是因为什么。
是因为数据库不同吗。我这面的数据库是NLS_LANG=AMERICAN_AMERICA.AL32UTF8,而另外数据库是US7ASCII。还有不同点是我机器是中文系统,tomcat+eclipse+oracle(AMERICAN_AMERICA.AL32UTF8)得到的值是
"안녕해".getBytes().length=3另外机器,是韩文操作系统tomcat+eclipse+oracle(US7ASCII)得到的值是"안녕해".getBytes().length=6.
不知道这个getBytes()的值是因为什么不同,导致得到的值不一样的?
try {
System.out.println("안녕해".getBytes("gb2312").length);
System.out.println("안녕해".getBytes("utf-8").length);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
可以看出上面个是9,下面个是3,LZ应该明白了吧
System.out.println("안녕해".getBytes().length );//3
System.out.println("안녕해".getBytes("ISO8859-1").length );//3
System.out.println("안녕해".getBytes("Cp949").length );//6
System.out.println("안녕해".getBytes("UTF-8").length );//9
是oracle的字符集,还是你eclipse的字符集,还是你系统的字符集,,,有知道的吗
看一下你环境里的默认字符集是什么,再看一你别人环境的是什么,应该是不一样的。
System.out.println(System.getProperty("file.encoding"));
试了下
s.getBytes("ISO8859-1").length; 长度为=3
s.getBytes("EUC-KR").length; 长度是6