作者LPH66 (IWH68S0XZ8M89)
看板java
标题Re: [问题] 字串转成Unicode
时间Sun Apr 6 00:48:36 2008
※ 引述《snowboylove (无心恋战)》之铭言:
: 在版上看了一些字串转Unicode的文章
: 可是我依然不太懂
: String s="12AB张三";
: byte[] z=s.getBytes();
: for (int i=0;i<z.length;i++){
: System.out.println("0x"+Integer.toHexString(z[i]));
: }
: 我这样转成16进位会变成 0x31 0x32 0x41 0x42 0xffffffb1 0x69 0xffffffa4 0x54
: 想问一下怎麽把String s转成Unicode码或是有其他方法可以把ffffff弄掉的?
在java里所有字元/字串都是unicode
所以你只需要用String::charAt(int)就可以把每个字(的unicode)弄出来了
用String::getBytes()反而会转成本地编码 (像我们就变成big5)
--
[LPH] Oops, your OOP's a problem? 说:
你现在还是看不到狗?
************* 说:
看得到 只是 他们不会跑 就一直呆呆在那边 一直在起点
[LPH] Oops, your OOP's a problem? 说:
你要按"ㄅㄧㄤˋ"它们才会跑啊@@"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84
※ 编辑: LPH66 来自: 140.112.30.84 (04/06 00:48)
1F:推 PsMonkey:那个 String::charAt() 看起来好怪 XDXD 04/06 21:41
2F:推 snowboylove:因为指定要用getBytes先转成位元组 然後再转16进位 04/06 22:33
3F:→ snowboylove:不然我用String.toCharArray()更快 就不用这麽麻烦= = 04/06 22:35
4F:→ LPH66:那就&0xFF吧 04/07 01:43
5F:→ LPH66:既然指定用getBytes那就照用吧 多的ff的用↖这个方法消掉 04/07 01:44