您好,登錄后才能下訂單哦!
網上有很多處理字符編碼的解決方案,在此,我站著前人的肩膀上作自己的總結。
在我看來,出現亂碼問題的解決方法無非就是在3個地方進行編碼設置:
1.HTML、JSP等前端頁面;
2.后臺servlet中request和response對象;
3.服務器配置文件。
1.HTML、JSP等前端頁面,出現編碼首先看前端某個頁面的Meta標簽是否正確設置了編碼,這個Meta標簽也就是頁面的頭部
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2.后臺的request和response的設置
2-1.當后臺接收到URL請求之后,如果沒有對請求設置編碼,那么,接收到的請求內容就會出現亂碼,這時,要分兩種情況考慮:
2-1-1.如果是Get請求,先獲取到URL請求中的參數,例如:
String method = request.getParameter("method");
然后調用String對象完成參數編碼的轉化,
String parseMethod = new String(method.getBytes("ISO-8859-1"),"UTF-8");
這里的String的構造方法有兩個參數:將參數從字符串的形式轉化為字符數組作為第一個參數,第二個參數是轉化后的字符串的編碼方式。
2-1-2.如果是Post請求,直接在獲取請求參數之前加上一句設置編碼的代碼,也就是調用request對象的設置編碼的setCharacterEncoding方法:
request.setCharacterEncoding("UTF-8");
2.2.當后臺完成業務邏輯及持久化的操作后,這時可能需要向前臺輸出響應流數據,若輸出的內容包含中文,就需要設置response對象的編碼,可以直接調用response對象的setContentType方法:
response.setContentType("text/html;charset=utf-8");
3.服務器配置文件的設置
當前兩步設置好了之后依舊不奏效的情況下,還應在服務器的安裝目錄下的conf文件夾下,比如我的是E:\tomcat7.0\conf,找到服務器的配置文件server.xml進行設置:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
以上這篇解決JavaEE開發中字符編碼出現亂碼的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。