解決JavaEE開發(fā)中字符編碼出現(xiàn)亂碼的問題

網(wǎng)上有很多處理字符編碼的解決方案,在此,我站著前人的肩膀上作自己的總結。

創(chuàng)新互聯(lián)始終致力于在企業(yè)網(wǎng)站建設領域發(fā)展。秉承“創(chuàng)新、求實、誠信、拼搏”的企業(yè)精神,致力為企業(yè)提供全面的網(wǎng)絡宣傳與技術應用整體策劃方案,為企業(yè)提供包括“網(wǎng)站建設、響應式網(wǎng)站開發(fā)、手機網(wǎng)站建設、微信網(wǎng)站建設、小程序開發(fā)、電子商務商城網(wǎng)站建設、平臺網(wǎng)站建設秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

在我看來,出現(xiàn)亂碼問題的解決方法無非就是在3個地方進行編碼設置:

1.HTML、JSP等前端頁面;

2.后臺servlet中request和response對象;

3.服務器配置文件。

1.HTML、JSP等前端頁面,出現(xiàn)編碼首先看前端某個頁面的Meta標簽是否正確設置了編碼,這個Meta標簽也就是頁面的頭部

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

2.后臺的request和response的設置

2-1.當后臺接收到URL請求之后,如果沒有對請求設置編碼,那么,接收到的請求內(nèi)容就會出現(xiàn)亂碼,這時,要分兩種情況考慮:

2-1-1.如果是Get請求,先獲取到URL請求中的參數(shù),例如:

String method = request.getParameter("method");

然后調(diào)用String對象完成參數(shù)編碼的轉化,

String parseMethod = new String(method.getBytes("ISO-8859-1"),"UTF-8"); 

這里的String的構造方法有兩個參數(shù):將參數(shù)從字符串的形式轉化為字符數(shù)組作為第一個參數(shù),第二個參數(shù)是轉化后的字符串的編碼方式。

2-1-2.如果是Post請求,直接在獲取請求參數(shù)之前加上一句設置編碼的代碼,也就是調(diào)用request對象的設置編碼的setCharacterEncoding方法:

request.setCharacterEncoding("UTF-8");

2.2.當后臺完成業(yè)務邏輯及持久化的操作后,這時可能需要向前臺輸出響應流數(shù)據(jù),若輸出的內(nèi)容包含中文,就需要設置response對象的編碼,可以直接調(diào)用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開發(fā)中字符編碼出現(xiàn)亂碼的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。

分享標題:解決JavaEE開發(fā)中字符編碼出現(xiàn)亂碼的問題
本文地址:http://bm7419.com/article40/jcsieo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、營銷型網(wǎng)站建設、網(wǎng)站收錄網(wǎng)站制作、Google自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作