發送post時,設置了utf-8,中文還是亂碼?
我們用HttpUrlConnection或HttpClient發送了post請求,其中有中文,雖然我們兩邊都設置了utf-8,但還是亂碼?
我們在request和response端應該設置了如下 :
request.setCharacterEncoding("utf-8");
post.setHeader("Content-type", "application/json; charset=utf-8");
但是對於中文,我們還要進行url編碼和解碼
URLEncoder.encode(param); //url編碼
param= URLDecoder.decode(param); //url解碼
雖然這兩個方法已經過時,但是jdk8並沒有刪除它,我們照樣可以用。這是取簡易的方法,如果以上方法不行,我們就加上編解碼方式,不過會拋出UnsupportedEncodingException
異常,要處理。
URLEncoder.encode(param,"utf-8"); //url編碼
param= URLDecoder.decode(param,"utf-8"); //url解碼