編寫過JSP頁面的朋友大概對于中文亂碼問題已經是司空見慣了,網上對于這方面問題的解決辦法也很多,在此我就不多贅述了。
但是最近我遇到了一個問題,就是我編寫過的頁面,有時候會顯示繁體字;而這個是通常的GB2312和GBK編碼方式所不能識別的,現(xiàn)在在頁上的顯示為?。
解決辦法:
?????? 將該頁面的字符編碼方式轉換為UTF-8。但這樣又會涉及到前后頁面互相傳參的問題,有時候會出現(xiàn)亂碼。在此我列出我遇到過的幾種情況供大家參考:

1、頁面的編碼方式設為UTF-8.
?<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2、在接收前面頁面?zhèn)鬟^來的參數(shù)時,如果前面頁面的編碼為GB2312或GBK,那么接收表單數(shù)據(jù)時:

???????request.setCharacterEncoding("GB2312");????
????? String nowcount=request.getParameter("nowcount");?

???? 如果前面的頁面編碼為UTF-8,那么:

?????? request.setCharacterEncoding("utf-8");????
????? String nowcount=request.getParameter("nowcount");

? 如果是通過URL傳參數(shù):
????? ?request.setCharacterEncoding("utf-8");??????????
?????? String city=request.getParameter("city");?
??????? city= new String(city.getBytes("iso8859_1"),"utf-8");?

3、經過上面的轉換,解決了問題的一大半,但還是遇到了新困難:
???? 如果在URL里面有兩個參數(shù):
???? 例:./index.jsp?city=北京市&type=B類
?????? 那么在接收參數(shù)時,只能接收到city,city的值是"北京市&type=B類",其中"&"符號周圍可能存在亂碼,不能識別多個參數(shù)。最后我只能是將參數(shù)合在一起傳過來,接收到了以后再split。解決了頁面的顯示問題。

?? 如果哪位朋友有這方面經驗也希望能寫出來與大家分享。