jodd-http post中文亂碼問題

一、使用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編碼爲字符串

推送給對面,就不會出現亂碼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章