作者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)
推 PsMonkey:那個 String::charAt() 看起來好怪 XDXD 04/06 21:41
推 snowboylove:因為指定要用getBytes先轉成位元組 然後再轉16進位 04/06 22:33
→ snowboylove:不然我用String.toCharArray()更快 就不用這麼麻煩= = 04/06 22:35
→ LPH66:那就&0xFF吧 04/07 01:43
→ LPH66:既然指定用getBytes那就照用吧 多的ff的用↖這個方法消掉 04/07 01:44