Json傳輸出現(xiàn)中文亂碼問題的解決辦法
針對最近練習項目時出現(xiàn)的亂碼問題 -- tomcat編碼出現(xiàn)的問題
問題出現(xiàn)原因:
web.xml中已經(jīng)加了中文過濾器和json數(shù)據(jù)轉(zhuǎn)換器,但依舊出現(xiàn)亂碼,這是因為tomcat默認的編碼格式是 iso-8859-1,所以會出現(xiàn)亂碼.
解決方式1: 將編碼方式直接改為UTF-8
/**
* 分頁條件查詢
*/
public void selectByPagesAndCondition(HttpServletRequest req,HttpServletResponse resp) throws IOException{
//獲取數(shù)據(jù)當前頁碼與展示條數(shù) url?currentPage=1&pageSize=5
int currentPage = Integer.parseInt(req.getParameter("currentPage"));
int pageSize = Integer.parseInt(req.getParameter("pageSize"));
//接收brand數(shù)據(jù)
BufferedReader reader = req.getReader();
String s = reader.readLine();
s = new String(s.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(s);
Brand brand = JSONObject.parseObject(s, Brand.class);
PageBean<Brand> pageBean = brandService.selectByPagesAndCondition(currentPage, pageSize,brand);
String StrJSON = JSON.toJSONString(pageBean);
//返回數(shù)據(jù)的JSON格式
resp.setContentType("text/json;charset=utf-8");
resp.getWriter().write(StrJSON);
}解決方式2:因是maven加的tomcat插件原因,修改其編碼格式
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8080</port>
<path>/</path>
<uriEncoding>utf-8</uriEncoding> <!--指定編碼格式 -->
</configuration>
</plugin>
</plugins>
</build>在沒有用springmvc時,可添加該句解決post請求的亂碼問題:
request.setCharacterEncoding("UTF-8");
一般的響應(yīng)亂碼
a:設(shè)置response的字符流的編碼方式為UTF-8;如:
response.setCharacterEncoding(“UTF-8”);b:設(shè)置瀏覽器解碼是用UTF-8的碼表來解碼;如:
response.setHeader(“content-type”, “text/html;charset=UTF-8”);
可兩者配合使用
以注解形式解決json串數(shù)據(jù)格式響應(yīng)亂碼問題
@RequestMapping(produces = {"text/html;charset=utf-8"})若原來方法只寫了匹配路徑,默認可不寫value屬性 如: @requestMapping(“/login.do”)等
多屬性時要添加屬性名,改為
@requestMapping(value="/login.do",produces = {"text/html;charset=utf-8"})缺點: 每個方法都要添加這個produces屬性,所以直接在springmvc.xml添加2個轉(zhuǎn)換器更為方便.
總結(jié)
到此這篇關(guān)于Json傳輸出現(xiàn)中文亂碼問題的解決辦法的文章就介紹到這了,更多相關(guān)Json傳輸中文亂碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java開發(fā)之Spring連接數(shù)據(jù)庫方法實例分析
這篇文章主要介紹了Java開發(fā)之Spring連接數(shù)據(jù)庫方法,以實例形式較為詳細的分析了Java Spring開發(fā)中針對數(shù)據(jù)庫的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
springMVC返回Http響應(yīng)的實現(xiàn)
本文主要介紹了在Spring Boot中使用@Controller、@ResponseBody和@RestController注解進行HTTP響應(yīng)返回的方法,具有一定的參考價值,感興趣的可以了解一下2025-03-03
Java中獲取?List中最后一個元素3種方法以及實際應(yīng)用
這篇文章主要給大家介紹了關(guān)于Java中獲取?List中最后一個元素3種方法以及實際應(yīng)用的相關(guān)資料,由于List的索引是從0開始的,所以最后一個元素的索引是List的大小減1,需要的朋友可以參考下2023-11-11

