String的getBytes()方法是得到一个字串的字节数组,这是众所周知的。但特别要注意的是,本方法将返回该操作系统默认的编码格式的字节数组。如果你在使用这个方法时不考虑到这一点,你会发现在一个平台上运行良好的系统,放到另外一台机器后会产生意想不到的问题。比如下面的程序:
在一个中文WindowsXP系统下,运行时,结果为:
bytes lenght is:12
但是如果放到了一个英文的UNIX环境下运行:
$ java TestCharset
bytes lenght is:9
所以,为了避免这种问题,我在编码中使用String.getBytes(String charset)方法。