看板 java 關於我們 聯絡資訊
不好意思,想請教一下編碼的問題: 我 Server 和 Client 傳送中文或出現亂碼, 我 client 是這樣寫的 ------------------------------------------ String Send = "一二三"; byte[] bytes = Send.getBytes("UTF-8"); OutputStream out = conn.getOutputStream(); out.write(bytes); ------------------------------------------ Server 是這樣接的 ------------------------------------------ InputStream is = req.getInputStream(); byte[] bytes = new byte[50]; is.read(bytes); String s = bytes.toString(); ------------------------------------------ 但是我的 s 最後會得到亂碼,請問該如何更正呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.107.146
willieliao:s = new String(bytes, "UTF-8"); 06/15 21:27
PsMonkey:==.=== 你的 req 怎麼「建立」的? 06/15 21:44
fantasywater:HttpServletRequest req 06/15 21:46
fantasywater:一樓的方法好像不行QQ 06/15 21:57
PsMonkey:先 req.setCharacter() 試試看吧..... 06/15 22:27
fantasywater:我有設 可是無效QQ 06/15 22:42
lubu:因為中文字是2bytes 但你存的矩陣是1byte 所以只存到一半吧 06/15 23:39
sbrhsieh:問題在於 byte[] 的 toString method 不如你想像的 06/16 00:08
PsMonkey:噗...都忘記看仔細了,可是他說一樓的方法無效 XD 06/16 00:34
fantasywater:我解出來了啦 要用 getOutputStream() 操.. 06/16 00:44
sbrhsieh:最好是這樣~~~ 06/16 01:22
fantasywater:string要改,但主要原因是其他某個部份的某一行~ 06/16 01:51