JSP中文亂碼處理

來源:互聯網
上載者:User
主  題:   散分,順便分享我的JSP中文字元處理心得(原創)
作  者:   joyous (NULL)
等  級:  
信 譽 值:   99
所屬社區:   Java Web 開發
問題點數:   100
回複次數:   1
發表時間:   2006-08-17 09:38:12

JSP代碼中的 JAVA 字元編碼設定

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.net.URLEncoder"%>
(好像上條語句並非必要)

紅色為制定JSP處理字元採用UTF-8編碼處理方式。

<%request.setCharacterEncoding ("UTF-8");%>
JSP內JAVA代碼設定接收參數為UTF-8編碼,在form提交,post還是get都支援中文,如果沒有該設定,就只能使用get方式。

JSP 內 HTML 頭的編碼設定
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Note Page</title>
  </head>
  <body>
……
……

紅色部分UTF-8制定HTML頁面使用的編碼方式

form 提交代碼如下

<form action=index.jsp method="post"><h3>Please Input Your Name:</h3>
<input type="text" size="30" name="yourname" value="" >
<input type=submit value="提交">
</form>

接收代碼如下:

<%
String temp1 = request.getParameter ("yourname");
……
%>

 
    超連結參數傳遞方式略有不同,若只採用以上設定,遇中文參數,直接提交會導致部分文字擷取參數,再提交前務必進行編碼。

<a href="
<%=request.getContextPath()%>/index.jsp?yourname=
<%=java.net.URLEncoder.encode (Joho,"UTF-8")%>">
<%=MyName%>
</a>

    由java.net.URLEncoder.encode函數將要發送的變數解析為16進位數字編碼,進行URL傳遞,若不編碼接收到的資訊很可能是/ufffd或者是殘缺的中文,示範接收代碼如下:

<%String str = request.getParameter ("傳遞的參數名");%>
<p>Hello: <%=str%></p>

由此,獲得參數後的str內將是正確的中文資訊。

    設定完畢將完美解決JSP中文字元參數問題,MySQL也同樣設定為UTF-8編碼,資料庫存取沒問題,Tomcat伺服器環境進行任何設定。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.