亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp中文亂碼

2019-11-08 03:17:33
字體:
來源:轉載
供稿:網友

 

之前總是碰到jsp頁面亂碼的問題,每次都是現在網上搜,然后胡亂改,改完也不明白原因。

這次正好作下總結,中文亂碼就是因為編碼不符,可能出現亂碼有四個地方:

1 JSP編碼亂碼

2 HTML編碼亂碼

3 request獲取數據亂碼

4 response輸出信息亂碼

5 Cookie導致的編碼問題

下面將會對上面幾種情況進行介紹:

  JSP亂碼

  這種是最常見的,設置編碼的位置位于JSP的第一行,如果在Eclipse中新建一個JSP默認是下面這種:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

  可以看到它默認的頁面編碼和傳輸編碼都是ISO-8859-1,這是用于歐洲國家的編碼。

  可以通過設置Eclipse中JSP的編碼格式,來修改默認生成的編碼格式。

  如果想要支持中文,可以使用UTF-8、GB2312、GBK等,其中UTF-8是國際化的,哪個國家的都支持,所以推薦使用這個。

  再來說說上面涉及到編碼的兩個地方:charset 和 pageEncoding

  charset是指服務器發往客戶端展現時的編碼;

  pageEncoding用于設置JSP頁面本身的編碼。

 

  JSP在部署后提供給用戶使用,會經過三個階段

  1 JSP生成java文件:這個階段會使用pageEncoding所定義的編碼格式進行轉換

  2 java文件生成class文件:這個階段由服務器tomcat自動使用utf-8編碼把java文件轉換成字節碼class文件  

  3 通過讀取class文件展現給用戶:這個階段由tomcat服務器獲取字節碼內容,通過使用contentType所定義的編碼格式展現給用戶。

  大致過程如下圖:

  這樣設置好JSP中的第一行代碼,就可以保證基本的JSP展現沒有亂碼了!

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

  HTML亂碼

  因為JSP中也包含html的內容,HTML本身也是有編碼格式的。

復制代碼
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body></body></html>復制代碼

  如果這部分編碼出現問題,那么html中標簽的中文命名就會出現亂碼。

  html中因為只涉及到表現層,所以只有一個屬性content中charset,這個編碼格式設置對了,就沒問題了。

  request中文亂碼

  有時候在做jsp邏輯處理時,比如提交表單,從前臺注冊的頁面提交了一部分的數據,但是后面處理的JSP頁面通過 request.getParameter 調用時,獲取到的是一堆亂碼。

  這是因為雖然前面JSP設置了編碼格式,卻沒有在當前的JSP中設置讀取數據的編碼格式。

  使用下面的代碼,就可以是設置request獲取請求內容的數據編碼:

request.setCharacterEncoding("utf-8");

  

  需要注意的是,這種方式對 URL傳參這種JSP請求 是沒有作用的。比如:

<a href="js  這種情況仍然會出現亂碼,這種URL傳參的方式,只能修改服務器tomcat的傳輸編碼格式。

  修改tomcat安裝文件 apache-tomcat-6.0.43/conf 目錄下的server.xml

  添加 URIEncoding=”UTF-8” ,就可以處理URL傳遞參數造成的中文亂碼問題了。

  response輸出中文亂碼

  可能現在已經沒有多少使用這種方式輸出頁面的了,但是還是有必要說一下,response輸出頁面元素內容時,也會出現亂碼。

  使用下面代碼就可以設置response輸出的編碼格式:

response.setContentType("text/html;charset=utf-8");

  cookie造成的中文亂碼

  Cookie由于需要保存在客戶端中,因此使用過程中都需要編碼以及轉碼:

  在保存Cookie數據前

  首先引入java.net.*,該包中包含URLEncoder類;

  保證response與request的編碼正確;

  使用URLEncoder進行轉碼,并保存。

復制代碼
<%@ page language="java" contentType="text/html; charset=utf-8"    import="java.net.*"    pageEncoding="utf-8"%><%//保證request以及response的編碼 request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//使用URLEncoder解決cookie中中文問題String username = URLEncoder.encode(request.getParameter("username"),"utf-8");String passWord = URLEncoder.encode(request.getParameter("password"),"utf-8");Cookie usernameCookie = new Cookie("username",username);Cookie passwordCookie = new Cookie("password",password);usernameCookie.setMaxAge(864000);passwordCookie.setMaxAge(864000);response.addCookie(usernameCookie);response.addCookie(passwordCookie);%>復制代碼

  在使用Cookie數據前

  依然要注意導入必備的包:java.net.*

  注意request的編碼;

  使用URLDecoder進行解碼

復制代碼
<%@ page language="java" import="java.util.*,java.io.*,java.net.*" contentType="text/html; charset=utf-8"%><%        request.setCharacterEncoding("utf-8");        String username = "";        String password = "";        Cookie[] cookies = request.getCookies();        if(cookies!=null && cookies.length>0){            for(Cookie c:cookies){                if(c.getName().equals("username")){                    username = URLDecoder.decode(c.getValue(),"utf-8");                    System.out.println(username);                }                if(c.getName().equals("password")){                    password = URLDecoder.decode(c.getValue(),"utf-8");                }            }        }%>復制代碼
上一篇:自定義jsp標簽

下一篇:jsp小知識

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品中文字幕在线观看| 欧美性生交xxxxxdddd| 亚洲毛片一区二区| 国内免费久久久久久久久久久| 国产91九色视频| 在线观看国产欧美| 久久久久久久久久av| 国产91对白在线播放| 青青久久aⅴ北条麻妃| 国产精品爽黄69| 亚洲国产天堂网精品网站| www.99久久热国产日韩欧美.com| 精品国产视频在线| 日韩最新中文字幕电影免费看| 久久久精品2019中文字幕神马| 欧美肥臀大乳一区二区免费视频| 欧美成人精品不卡视频在线观看| 国产亚洲精品日韩| 国产精品久久久久久久9999| 欧美特黄级在线| 日韩av影片在线观看| 影音先锋欧美在线资源| 国产精品欧美在线| 伊人男人综合视频网| 91在线视频精品| 亚洲国产精久久久久久久| 欧美亚洲国产另类| 国产一区二区三区免费视频| 国产精品久久久久久久久久久久久久| 国产91成人在在线播放| 91啪国产在线| 国产精品久久久久久久久影视| 中文字幕日韩免费视频| 97精品国产97久久久久久春色| 欧美在线视频一区二区| 亚洲美女在线看| 97在线视频免费观看| 欧美激情精品久久久| 最近中文字幕2019免费| 精品国产拍在线观看| 中文综合在线观看| 久久久久国产精品免费网站| 精品日韩视频在线观看| 92版电视剧仙鹤神针在线观看| 欧美理论电影网| 国内精久久久久久久久久人| 日韩电影在线观看中文字幕| 4p变态网欧美系列| 国产精品老女人精品视频| 精品国产一区二区三区久久久| 91久久久久久久久久| 97视频国产在线| 操人视频在线观看欧美| 日韩美女中文字幕| 欧美乱大交xxxxx另类电影| 欧美成人免费观看| 国产深夜精品福利| 欧美日韩在线免费| 亚洲精品成人久久久| 国内精品400部情侣激情| 久久精品国产精品| 欧美激情欧美激情在线五月| 91黄色8090| 日韩成人中文字幕在线观看| 亚洲国产精品久久精品怡红院| 亚洲电影第1页| 精品国产拍在线观看| 亚洲成人aaa| 亚洲片在线资源| 日韩日本欧美亚洲| 国产不卡视频在线| 国产+人+亚洲| 国产精品高潮呻吟久久av无限| 亚洲3p在线观看| 中文字幕亚洲第一| 一区二区欧美久久| 欧美精品一本久久男人的天堂| 91国产中文字幕| 日韩精品在线观看一区| 日韩中文字幕在线| 日韩专区中文字幕| 欧美性猛交xxxx乱大交蜜桃| 成人精品视频久久久久| 亚洲精品视频中文字幕| 国产91精品高潮白浆喷水| 亚洲精品美女网站| 中文字幕成人精品久久不卡| 国产91网红主播在线观看| 成人免费淫片视频软件| 欧美夫妻性生活xx| 欧美片一区二区三区| 深夜成人在线观看| 久久久久久久影院| 97香蕉久久夜色精品国产| 国产中文欧美精品| 成人激情电影一区二区| 一区二区在线免费视频| 成人黄色在线免费| 亚洲免费高清视频| 久久中文久久字幕| 韩国19禁主播vip福利视频| 亚洲欧美精品一区二区| 色悠悠国产精品| 亚洲自拍中文字幕| 日韩av在线影视| 国产免费成人av| 日本免费一区二区三区视频观看| 97视频在线观看视频免费视频| 国产啪精品视频| 在线观看日韩www视频免费| 亚洲天堂成人在线视频| 久久国产精品久久久| 一本一本久久a久久精品牛牛影视| 欧美午夜xxx| 97涩涩爰在线观看亚洲| 91精品国产免费久久久久久| 亚洲va欧美va国产综合剧情| 亚洲欧美日韩网| 亚洲欧美变态国产另类| 97精品伊人久久久大香线蕉| 国产成人精品一区二区三区| 欧美午夜激情小视频| 久久91精品国产91久久久| 久久影视电视剧免费网站清宫辞电视| 国产日韩欧美黄色| 成人激情综合网| 欧美成人精品在线播放| 亚洲国产一区自拍| 国产精品va在线播放| 欧美精品videosex极品1| 伦伦影院午夜日韩欧美限制| 这里只有精品在线播放| 久久91亚洲人成电影网站| 国产精品天天狠天天看| 日韩欧美视频一区二区三区| 日韩精品高清在线| 国产一区二区三区视频在线观看| 最近2019中文免费高清视频观看www99| 日韩av片免费在线观看| 亚洲欧洲成视频免费观看| 97av在线视频免费播放| 久久香蕉国产线看观看网| 国产精品九九久久久久久久| 国产精品久久久久免费a∨| 欧美丰满少妇xxxxx做受| 亚洲精品成人免费| 国产亚洲成精品久久| 欧美日韩亚洲视频| 91精品国产自产在线| 亚洲综合自拍一区| 国产97免费视| 日韩高清欧美高清| 亚洲国产精品一区二区三区| 国产精品入口夜色视频大尺度| 久久久久久久一| 欧美视频在线免费看| 亚洲国产一区二区三区四区| 亚洲成人精品视频在线观看| 69国产精品成人在线播放| 久久成人这里只有精品| 在线看国产精品| 亚洲国产欧美一区二区三区久久| 日韩av在线免费播放| 97香蕉久久超级碰碰高清版|