編寫過JSP頁面的朋友大概對于中文亂碼問題已經是司空見慣了,網上對于這方面問題的解決辦法也很多,在此我就不多贅述了。
但是最近我遇到了一個問題,就是我編寫過的頁面,有時候會顯示繁體字;而這個是通常的GB2312和GBK編碼方式所不能識別的,現在在頁上的顯示為?。
解決辦法:
?????? 將該頁面的字符編碼方式轉換為UTF-8。但這樣又會涉及到前后頁面互相傳參的問題,有時候會出現亂碼。在此我列出我遇到過的幾種情況供大家參考:
1、頁面的編碼方式設為UTF-8.
?<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2、在接收前面頁面傳過來的參數時,如果前面頁面的編碼為GB2312或GBK,那么接收表單數據時:
???????request.setCharacterEncoding("GB2312");????
????? String nowcount=request.getParameter("nowcount");?
???? 如果前面的頁面編碼為UTF-8,那么:
?????? request.setCharacterEncoding("utf-8");????
????? String nowcount=request.getParameter("nowcount");
? 如果是通過URL傳參數:
????? ?request.setCharacterEncoding("utf-8");??????????
?????? String city=request.getParameter("city");?
??????? city= new String(city.getBytes("iso8859_1"),"utf-8");?
3、經過上面的轉換,解決了問題的一大半,但還是遇到了新困難:
???? 如果在URL里面有兩個參數:
???? 例:./index.jsp?city=北京市&type=B類
?????? 那么在接收參數時,只能接收到city,city的值是"北京市&type=B類",其中"&"符號周圍可能存在亂碼,不能識別多個參數。最后我只能是將參數合在一起傳過來,接收到了以后再split。解決了頁面的顯示問題。
?? 如果哪位朋友有這方面經驗也希望能寫出來與大家分享。
但是最近我遇到了一個問題,就是我編寫過的頁面,有時候會顯示繁體字;而這個是通常的GB2312和GBK編碼方式所不能識別的,現在在頁上的顯示為?。
解決辦法:
?????? 將該頁面的字符編碼方式轉換為UTF-8。但這樣又會涉及到前后頁面互相傳參的問題,有時候會出現亂碼。在此我列出我遇到過的幾種情況供大家參考:
1、頁面的編碼方式設為UTF-8.
?<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2、在接收前面頁面傳過來的參數時,如果前面頁面的編碼為GB2312或GBK,那么接收表單數據時:
???????request.setCharacterEncoding("GB2312");????
????? String nowcount=request.getParameter("nowcount");?
???? 如果前面的頁面編碼為UTF-8,那么:
?????? request.setCharacterEncoding("utf-8");????
????? String nowcount=request.getParameter("nowcount");
? 如果是通過URL傳參數:
????? ?request.setCharacterEncoding("utf-8");??????????
?????? String city=request.getParameter("city");?
??????? city= new String(city.getBytes("iso8859_1"),"utf-8");?
3、經過上面的轉換,解決了問題的一大半,但還是遇到了新困難:
???? 如果在URL里面有兩個參數:
???? 例:./index.jsp?city=北京市&type=B類
?????? 那么在接收參數時,只能接收到city,city的值是"北京市&type=B類",其中"&"符號周圍可能存在亂碼,不能識別多個參數。最后我只能是將參數合在一起傳過來,接收到了以后再split。解決了頁面的顯示問題。
?? 如果哪位朋友有這方面經驗也希望能寫出來與大家分享。