奇怪的String.getBytes("Unicode")

今天在写程序遇到了一个问题,如此奇葩。因为java要与VB中有一些对接,所有VB中在使用MidB计算字符串长度的时候,一个英文字符也是按照两个字节来处理的。所有在java中除需要找一个相对应的方法。

java中的一个英文字母代表一个字节。但是需要把字符按照Unicode进行编码。


 "a".getBytes("Unicode").length: 结果为  4

 "ab".getBytes("Unicode").length:  结果为  6  

找了半天不知道为什么。后来在一篇博客中找到了答案: 需要使用UnicodeBigUnmarked  这个。具体原理我也还是不太清楚。

 "a".getBytes("UnicodeBigUnmarked").length  结果为2


想了解具体原理的同学,可以看一下下边这篇博客。

http://blog.csdn.net/lcfeng1982/article/details/6830584

猜你喜欢

转载自blog.csdn.net/lanxingfeifei/article/details/77868616