国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

小結getBytes()默認編碼導致的xml字符串中出現亂碼

2019-11-14 22:54:08
字體:
來源:轉載
供稿:網友
小結getBytes()默認編碼導致的xml字符串中出現亂碼

遇到亂碼第一印象想到的是如何統一編碼,很少注意到這期間穿插的某些過程也是一大隱患..

sae上部署了一個s

編碼已經設置為utf-8,spring也加了過濾器進行utf-8的解碼...而且控制臺也的確打印出沒有亂碼的發送信息..想當然的認為這頭一定沒問題..

然后只好寫個測試代碼從獲得數據的那頭獲取:

entity = new StringEntity(doc.asXML());post.setEntity(entity);HttpResponse response = client.execute(post);String result = EntityUtils.toString(response.getEntity());System.out.println("結果:"+result);

結果得到的就是亂碼,如果接收方代碼如下改則不會亂碼:

String result = EntityUtils.toString(response.getEntity(),"gbk");

證明亂碼部分發過來的是gbk的..我的確是有點蒙了,下午被sae的坑人環境坑了大半天腦袋早木了..又細想了一下既然發過來是亂碼,編碼的時候又是正常的,那也只可能是getBytes()這一處能出問題了,也只有這一處動過編碼后的字符串..看看api說明吧:

Encodes this String into a sequence of bytes using the platform's default charset, storing the result into a new byte array. 

我倒了..這才恍然大悟,我本地是windows系統,默認是gbk,所以此處會將那部分中文按照gbk編碼然后傳過去,因為我們response.setXX("utf-8")了,所以接收方按照utf-8來解碼,直接亂碼..

所以我們應該改成:

response.setCharacterEncoding("utf-8");
response.getOutputStream().write(result.getBytes("utf-8"));

則接收方無需做任何處理便可得到沒有亂碼的中文..


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 济源市| 蕉岭县| 万全县| 马山县| 广灵县| 三亚市| 东平县| 绥阳县| 罗山县| 平陆县| 扶余县| 苍溪县| 永春县| 富蕴县| 石门县| 华池县| 宝坻区| 彝良县| 凌海市| 玉环县| 柳林县| 大港区| 河北区| 巴中市| 光山县| 宝鸡市| 德钦县| 化隆| 江城| 沧州市| 兴和县| 仁寿县| 稷山县| 伊通| 城步| 白朗县| 广宗县| 阿克陶县| 曲麻莱县| 龙井市| 西贡区|