一、使用http框架
<dependency>
<groupId>org.jodd</groupId>
<artifactId>jodd-http</artifactId>
<version>5.0.2</version>
</dependency>
二、問題描述:
今天因爲業務需要,調用其他公司的接口,來推送數據, 結果接口聯調時發現,出現中文漢字的亂碼問題。
發現設置charset="utf-8"不生效,
HttpRequest request = HttpRequest.post(url);
request.contentType("application/json");
request.charset("utf-8"); // 依舊出現中文亂碼
三、問題解決
發現使用charset不生效後,查看jodd-http的源碼後,改用下面方面解決了中文亂碼問題。
params 爲藉口推送的json字符串
contetent爲"application/json"
HttpRequest request = HttpRequest.post(url);
request.bodyText(params,content,"utf-8");
源碼如下:
發現bodyText方法會先講我們的json字符串通過 srcCharsetName=“utf-8” 變成byte[],在將byte[] 通過ISO-8859-1編碼爲字符串
推送給對面,就不會出現亂碼了。