如何得到unicode字符串?

BareHead 2001-02-23 10:09:00
我有一个字节数组byte[],存放的是一个unicode编码的序列,如何根据这个字节数组得到相应的string对象?string的构造方法全部是根据本地编码得到字符串,不能根据unicode编码得到字符串。
情大侠出手!!
...全文
502 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BareHead 2001-02-26
  • 打赏
  • 举报
回复
算了,我自己解决了。应该用
String k=new String(b,"UnicodeLittleUnmarked");//intel cpu
或者
String k=new String(b,"UnicodeBigUnmarked");//sun cpu
我在jdk的帮助中找到的。
原来大家和我一样都不看jdk的文档的。
分数本来无所谓,可是我实在不好意思给任何一个人。就放在这里吧。
每人给一分,多谢大家参与。
to yangzi:
在简体中文操作系统中,缺省本地编码就是gb2312,不必显式说明。再说我都说了是unicode编码的字节数组,不是本地编码的字节数组。
BareHead 2001-02-25
  • 打赏
  • 举报
回复
robber(海盗)说得不对。我试过了。
一个例子,字符串“a第”的unicode编码是“0x60 0x00 0x2c 0x78”,即java的字符串在内存中实际存放的是上面的二进制码。现在我有一个字节数组
byte[] b={0x60,0x00,0x2c,0x78};
String k=new String(b,"utf-8");
得到的是字符串“, ‘x”,不是字符串“a第”即每个字节被认为是ascii码,不是每两个字节作为一个unicode码处理。
谁能帮帮我??
yangzi 2001-02-25
  • 打赏
  • 举报
回复
那你试试下面的:
String k=new String(b,"GB2312");
masterz 2001-02-24
  • 打赏
  • 举报
回复
我看到的java2培训教材上说java全部采用unicode.不必转换。
虎叔 2001-02-24
  • 打赏
  • 举报
回复
String str=new String(byte[],"UTF-8");
lmy2000 2001-02-24
  • 打赏
  • 举报
回复
同意robber(海盗)大虾的。
yangzi 2001-02-24
  • 打赏
  • 举报
回复
海盗是对的。
wqs0006 2001-02-24
  • 打赏
  • 举报
回复
java内部用的是unicode码,但windows用的是GB码,两者之间的转化工作由JVM完成,但你必须用适当的代码,比如,输入输出要用字符方式(Write,read系列),string的构造函数也很有讲究,具体可查参考书。(wqs0006@sina.com)
zha1977 2001-02-24
  • 打赏
  • 举报
回复
java的字符确实是2各字节的unicode
但是,byte数组可不能和string等价,需要转换,函数名我忘了
也可以用一个byte数组生成一个string,string类有相应的构造函数
好像是String str=new String(byte[],encoding);

62,614

社区成员

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

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