浏览 1837 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-12
程序如下: package com.wangf.test; import java.io.UnsupportedEncodingException; public class Test { public static void main(String[] args) throws UnsupportedEncodingException { String a = "哈"; System.out.println("默认:"+a.getBytes().length); System.out.println("gbk:"+a.getBytes("gbk").length); System.out.println("utf-8:"+a.getBytes("utf-8").length); System.out.println("utf-16:"+a.getBytes("utf-16").length); } } Eclipse3.2运行结果为: 默认:3 gbk:2 utf-8:3 utf-16:4 说明a.getBytes()和a.getBytes("utf-8")相同。 MyEclipse6.5运行结果为: 默认:2 gbk:2 utf-8:3 utf-16:4 说明a.getBytes()和a.getBytes("gbk")相同。 根据JDK的说明:String.getBytes()是返回“平台”的默认编码。很多人认为这个“平台”代表操作系统,但如果是这样,那么a.getBytes()永远都应该和a.getBytes("gbk")相同,因为我的操作系统当然是中文操作系统。然而在Eclipse3.2中的运行结果却否认了这个说法。 如果将Eclipse3.2中的工程编码修改为gbk,那么它和MyEclipse6.5的运行结果就一样了。 大家讨论讨论! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-12
getbytes中说的系统不是操作系统,
而是jvm运行环境的系统变量中的编码,如果没有默认iso8859-1 你的eclipse和MyEclipse,都是英文版的吗? 另一个问题:中文操作系统也不一定是GBK |
|
返回顶楼 | |
发表时间:2010-11-12
kimmking 写道 getbytes中说的系统不是操作系统,
而是jvm运行环境的系统变量中的编码,如果没有默认iso8859-1 你的eclipse和MyEclipse,都是英文版的吗? 另一个问题:中文操作系统也不一定是GBK 对,Eclipse和MyEclipse都是英文版的。 就算getbytes是jvm运行环境的系统变量中的编码,也不能说明为什么运行结果不一样啊? 我的Eclipse和MyEclipse都是用的同一个JDK |
|
返回顶楼 | |