今天在写程序遇到了一个问题,如此奇葩。因为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