作者fantasywater (菸酒生)
看板java
標題[問題] server 與 client 傳送訊息的問題
時間Tue Jun 15 21:05:41 2010
不好意思,想請教一下編碼的問題:
我 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