看板 java 關於我們 聯絡資訊
※ 引述《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