Java开发中字符编码出现乱码的处理
出現亂碼問題的解決方法無非就是在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:\tomcat6.0\conf,找到服務器的配置文件server.xml進行設置:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>?
原網址:http://www.cnblogs.com/hewanchuan/p/7156750.html
轉載于:https://www.cnblogs.com/zdf159/p/7160121.html
總結
以上是生活随笔為你收集整理的Java开发中字符编码出现乱码的处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BGP协议详解
- 下一篇: BZOJ 1053 [HAOI2007]