Json傳輸出現(xiàn)中文亂碼問題的解決辦法
針對最近練習項目時出現(xiàn)的亂碼問題 -- tomcat編碼出現(xiàn)的問題
問題出現(xiàn)原因:
web.xml中已經加了中文過濾器和json數(shù)據轉換器,但依舊出現(xiàn)亂碼,這是因為tomcat默認的編碼格式是 iso-8859-1,所以會出現(xiàn)亂碼.
解決方式1: 將編碼方式直接改為UTF-8
/** * 分頁條件查詢 */ public void selectByPagesAndCondition(HttpServletRequest req,HttpServletResponse resp) throws IOException{ //獲取數(shù)據當前頁碼與展示條數(shù) url?currentPage=1&pageSize=5 int currentPage = Integer.parseInt(req.getParameter("currentPage")); int pageSize = Integer.parseInt(req.getParameter("pageSize")); //接收brand數(shù)據 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ù)據的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");
一般的響應亂碼
a:設置response的字符流的編碼方式為UTF-8;如:
response.setCharacterEncoding(“UTF-8”);b:設置瀏覽器解碼是用UTF-8的碼表來解碼;如:
response.setHeader(“content-type”, “text/html;charset=UTF-8”);
可兩者配合使用
以注解形式解決json串數(shù)據格式響應亂碼問題
@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個轉換器更為方便.
總結
到此這篇關于Json傳輸出現(xiàn)中文亂碼問題的解決辦法的文章就介紹到這了,更多相關Json傳輸中文亂碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用java實現(xiàn)“釘釘微應用免登進入某H5系統(tǒng)首頁“功能”
這篇文章主要介紹了用java實現(xiàn)“釘釘微應用,免登進入某H5系統(tǒng)首頁“功能”,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10SpringBoot+Netty+WebSocket實現(xiàn)消息發(fā)送的示例代碼
這篇文章主要介紹了SpringBoot+Netty+WebSocket實現(xiàn)消息發(fā)送的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Elasticsearch倒排索引詳解及實際應用中的優(yōu)化
Elasticsearch(ES)使用倒排索引來加速文本的搜索速度,倒排索引之所以高效,主要是因為它改變了數(shù)據的組織方式,使得查詢操作可以快速完成,這篇文章主要給大家介紹了關于Elasticsearch倒排索引詳解及實際應用中優(yōu)化的相關資料,需要的朋友可以參考下2024-08-08Java并發(fā)編程學習之Unsafe類與LockSupport類源碼詳析
這篇文章主要給大家介紹了關于Java并發(fā)編程學習之Unsafe類與LockSupport類源碼的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧2018-06-06詳解Java高并發(fā)編程之AtomicReference
此篇文章主要介紹了AtomicReference的出現(xiàn)背景,AtomicReference的使用場景,以及介紹了AtomicReference的源碼,重點方法的源碼分析2021-06-06