成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSP亂碼問題及解決方法

開發 后端
這里為大家介紹JSP亂碼問題及解決方法,思考包括亂碼產生的原因,主要是編碼方式和其他的原因。希望能對大家有所幫助。

JSP亂碼問題思考及解決方法

一、引起亂碼的原因有:

1、響應中的亂碼:即顯示頁面上的亂碼,如index.jsp顯示出來時,"用戶名"顯示為亂碼

2、表單提交時的亂碼:即在表單的文本框中輸入為中文的時候提交到服務出現亂碼

二、針對各原因的解決思路及方法:

1、響應中的JSP亂碼:

說明:

(1).常見的編碼方式:

ISO-8859-1,GB18030,GB2312,UTF-8;

(2)pageEncoding的含義:

pageEncoding表示的是該JSP頁面的編碼,也就是你要保存一個JSP頁面,系統會以這個編碼來保存(我們知道文本文件另存為的時候會彈出一個提示窗口,你細心一下就會發現原來可以選擇不同的"編碼"來保存),
同理,JSP文件默認保存的時候會以你設置的pageEncoding的屬性值保存該JSP頁面。
Eclipse中如果你設置了Window\preferences\jspfiles面版上的Encoding為某一個值如GB2312,則以后新建一個JSP文件的時候系統會自動加上pageEncoding="GB2312"這一屬性。

注意:pageEncoding="ISO-8859-1"的時候是不能保存中文的,就是說如果你設置為ISO-8859-1,但又想在JSP文件中寫一段中文,保存文件的時候會提示不能保存。

(3)JSP實現過程:

客戶提交URL請求如:www.WebTest.com/index.jsp

服務器接收到請求

服務器尋找本地文件index.jsp

服務器將index.jsp轉譯為index.java再編譯為index_jsp.class文件,并將其作為響應發給客戶端

客戶端瀏覽器解釋執行得到HTML代碼并顯示給客戶

由上可見,要解決響應中的JSP亂碼問題要注意三點:

I、對本地文件index.jsp的pageEncoding屬性檢查,因為服務器接到請求后首先是找這個文件。pageEncoding可設為GB18030,GB2312,UTF-8

II、JSP使用<%@pagecontentType="text/html;charset=GB2312"%>為響應添加編碼信息,這里如果charset="ISO-8859-1",顯示出來的中文肯定是亂碼。

III、記得在<head></head>中加入<metahttp-equiv="Content-Type"content="text/html;charset=GB2312">注意這句話應是在<head>之后的首句話,因為有可能<title></title>中使用了中文,如果加在</title>后,則title內容顯示會出現亂碼。這里的charset值最好與contentType中的charset值一致。

經過上面三步即可解決響應亂碼即顯示出來的頁面中有亂碼的情況。

2、表單提交亂碼:

說明:

(1)表單的文本框中輸入為中文的時候提交到服務出現亂碼的主要原因是:表單提交即發送請求的過程中使用的編碼是ISO-8859-1.

表單提交方式有POST和GET,所以表單提交亂碼為POST亂碼和GET亂碼

I、POST亂碼

解決方法是在JSP頁面中加入語句:<%request.setCharacterEncoding("UTF-8");%>

II、GET亂碼

POST方式下的解決方式還算簡單,因為POST方式下提交的數據都是以二進制的方式附加在http請求的body部分發送,只需要在后臺指定編碼格式就足矣解決。

GET方式下會將參數直接附加到url后面,這部分參數無法使用request.setCharacterEncoding()處理,結果就是get形式的所有中文都變成了亂碼。

這里只能對提交的內容轉換成字節再轉換成另一編碼的字符:如下:

  1. <%  
  2. Stringusername=request.getParameter("username");  
  3. byte[]bytes=username.getBytes("iso-8859-1");  
  4. Stringresult=newString(bytes,"gb2312");  
  5. out.print(result);  
  6. %> 

理解起來很簡單:首先我要獲得與現有編碼不同的編碼的字符串,String類中構造函數:newString(byte[],charsetch);
那么現在我需要一個字節數組,即要對原來的字符串進行轉換,從字符串變成字節數組,String類中的getBytes(charsetch)函數

所以結合起來就是:newString(username.getBytes("iso-8859-1"),"gb2312");

【編輯推薦】

  1. 淺談JSP頁面跳轉與請求轉發
  2. 分析Tomcat中JSP Web開發中的亂碼問題小結
  3. 如何加快JSP訪問速度
  4. ASP.NET、JSP和PHP究竟哪個好
  5. JSP相關軟件介紹
責任編輯:彭凡 來源: CSDN博客
相關推薦

2009-07-02 13:26:32

JSP中文亂碼

2012-03-21 10:16:31

JavaJSP

2009-07-02 13:32:56

JSP中文亂碼

2009-02-26 11:13:41

Weblogic中間件JSP

2009-07-07 18:20:54

JSP頁面顯示亂碼

2009-07-07 13:42:57

Servlet JSP

2009-02-18 14:28:23

編碼亂碼JSP

2022-04-02 20:27:30

ETS操作系統鴻蒙

2010-07-15 14:01:12

telnet亂碼

2012-06-19 14:35:24

JSPJava亂碼

2011-08-24 17:41:16

MySQL死鎖

2011-05-06 17:25:58

硒鼓

2021-06-17 08:07:35

Linux 內存站崗

2010-10-13 17:22:12

MySQL查詢亂碼

2016-11-14 10:06:04

大數據max位圖

2009-03-04 10:38:36

Troubleshoo桌面虛擬化Xendesktop

2010-08-31 13:49:12

CSS

2018-11-01 15:26:38

開源軟件安全

2019-10-11 19:45:28

SparkSQLHiveHadoop

2025-04-07 07:20:35

SQL慢查詢性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九九热这里只有精品在线观看 | 欧美日韩大陆 | 午夜一区| 成人av一区 | 天天色综 | 亚洲成av人影片在线观看 | 国产不卡一区在线观看 | 精品欧美激情在线观看 | 久久久区 | 亚洲精品大全 | 日本韩国欧美在线观看 | 最新av在线播放 | 久久午夜视频 | 九九亚洲| 日韩免费av | 国产91久久精品一区二区 | 国产高清亚洲 | 精品日韩 | 99在线资源 | 四虎影音 | 看片国产 | 国产综合精品一区二区三区 | 日日精品 | 亚洲一区二区三区免费 | 日本精品在线观看 | 国产成人精品综合 | 在线国产一区 | 在线免费亚洲视频 | 国产一区二区三区久久久久久久久 | 国产91丝袜在线播放 | 久久亚洲欧美日韩精品专区 | 能免费看的av | 日韩精品久久 | 91视频.com | 亚洲国产一区二区视频 | 成人精品在线观看 | 亚洲高清三级 | 国产精品99久久久精品免费观看 | 日韩综合在线 | 久久大| 久久婷婷国产麻豆91 |