求解JAVA string.getBytes()问题。。

bingyuanspace 2011-05-13 11:43:05
大家知道,java string 支持以unicode 形式赋值如
String str= "\u3197\u32a5\u4e2d";使用这种方法,可以让java 处理一下无法在java 源文件中输入 的字符。

String可以根据一个charSet来获得一个byte[]数组,就拿刚才提到的str

byte[] buf = str.getBytes("BIG5");


按说str中的3 个unicode 字符都应该能够获得byte[]序列为a4a4的big5编码,但最终测试的结果为只有最后个可以获得a4a4,前面两个都不行。。。
后来想了下,难道是java String 是两个字节的,而每个字节的最高一个bit固定为0, 所以String的高位4bit不能接能>0x7的字符? 是这样子吗?

java jdk 到底支持那些范围的unicode啊??急急

最后再说一点,为什么java 对于u+E000以上编码也不能支持啊?
...全文
160 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingyuanspace 2011-05-13
  • 打赏
  • 举报
回复
再发一个改unicode的link..
http://en.glyphwiki.org/wiki/u3197

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧