解決Web工程亂碼問題

1.servlet跳轉到jsp頁面

        在JSP中涉及到使用Servlet進行一些邏輯處理  處理完後進行頁面跳轉  如在Servlet中進行的request.getRequestDispatcher("index.jsp").forward(request, response);  這樣的跳轉 可是有時候我們在跳轉的時候  會遇到中文亂碼的問題  就算是同一個頁面  你進行過一些處理後調回本頁面  也可能遇到這樣的情況 也許你會說你沒有啊  因爲出現這種情況是你的Servlet中存在這樣的語句:PrintWriter out = response.getWriter();   也許你也有設置他的字符集  可是正確的解決方法是:

        在PrintWriter out = response.getWriter();之前設置他的字符集,如:response.setCharacterEncoding("GBK");這樣跳轉的頁面也就不會出現中文亂碼了

2.servlet傳到數據庫產生的亂碼問題

(1)建立一個字符串轉換類,如下所示

import java.io.UnsupportedEncodingException;

public class StringTo {

public static String ConvertoCN(String str)
{
byte[] bs;
String str1 = null ;
try {
bs = str.getBytes("ISO-8859-1");
str1 = new String(bs,"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return str1;
}
}

然後把request.getParameter("name")等類似的改爲

StringTo.ConvertoCN(request.getParameter("name"));問題解決

3.jsp中的亂碼問題(分三步)

(1)統一格式,我選的是UTF-8

(2)選擇window->prerences->general->workspace->other改爲UTF-8

(3)另外jsp中也要統一格式,因爲我選的是UTF-8

代碼如下所示

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


對於jsp中已造成亂碼的問題自己手動改正


(4)自己寫一個filter過濾器

(5)

數據庫亂碼(mysql)

統一數據庫和工程編碼格式

 conn=DriverManager.getConnection("jdbc:MySQL://localhost:3306/test?useUnicode=true&amp&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull","root","123");

(6)

ajax傳漢字或者a標籤傳值

這樣傳值

"url?name="+encodeURI(encodeURI("中國"));

Servlet端

   java.net.URLDecoder urlDecoder = new java.net.URLDecoder();     
    String s = urlDecoder.decode(userName,"UTF-8");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章