[問題] server 與 client 傳送訊息的問題

看板java作者 (菸酒生)時間15年前 (2010/06/15 21:05), 編輯推噓5(507)
留言12則, 5人參與, 最新討論串1/1
不好意思,想請教一下編碼的問題: 我 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

06/15 21:27, , 1F
s = new String(bytes, "UTF-8");
06/15 21:27, 1F

06/15 21:44, , 2F
==.=== 你的 req 怎麼「建立」的?
06/15 21:44, 2F

06/15 21:46, , 3F
HttpServletRequest req
06/15 21:46, 3F

06/15 21:57, , 4F
一樓的方法好像不行QQ
06/15 21:57, 4F

06/15 22:27, , 5F
先 req.setCharacter() 試試看吧.....
06/15 22:27, 5F

06/15 22:42, , 6F
我有設 可是無效QQ
06/15 22:42, 6F

06/15 23:39, , 7F
因為中文字是2bytes 但你存的矩陣是1byte 所以只存到一半吧
06/15 23:39, 7F

06/16 00:08, , 8F
問題在於 byte[] 的 toString method 不如你想像的
06/16 00:08, 8F

06/16 00:34, , 9F
噗...都忘記看仔細了,可是他說一樓的方法無效 XD
06/16 00:34, 9F

06/16 00:44, , 10F
我解出來了啦 要用 getOutputStream() 操..
06/16 00:44, 10F

06/16 01:22, , 11F
最好是這樣~~~
06/16 01:22, 11F

06/16 01:51, , 12F
string要改,但主要原因是其他某個部份的某一行~
06/16 01:51, 12F
文章代碼(AID): #1C5tgdtp (java)