-
解析Java中文亂碼的處理方法(1)
- http://developer.51cto.com 2007-08-17 09:44 程序猶如人生 BlogJava 我要評論(1)
- 本文作者總結了自己幾年來在Java開發中遇到的各種各樣的中文亂碼的解決方法,與大家共享。
【引自程序猶如人生的博客】爲什麼說亂碼是中國程序員無法避免的話題呢?這個首先要從編碼機制上說起,大家都是中文和英文的編碼格式不是一樣,解碼也是不一樣的!如果中國的程序員不會遇到亂碼,那麼只有使用漢語編程。漢語編程是怎麼回事,我也不大清楚,應該是前年吧!我一朋友給我介紹漢語編程,怎麼不錯不錯?當時因爲學習忙沒去關注這個,等我閒了,那個朋友不弄這個,問他,他也不說不大清楚,最後自己對這個學習也不了了之了。
我寫這個不是講解中英文之間的差距,解碼等,我是將我在這幾年工作遇到各種各樣的亂碼的解決方法,總結起來,也希望大家能把自己暈倒解決亂碼的方法都說出來,咱們弄一個解決亂碼的“葵花寶典”。
對於Java,由於默認的編碼方式是UNICODE,所以用中文也易出問題,常見的解決是:
String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”); |
1、utf8解決JSP中文亂碼問題
一般說來在每個頁面的開始處,加入:
<%@ page language="java" contentType="text/html; charset=UTF-8" <%@ page language="java" contentType="text/html; charset=UTF-8" <% |
◆charset=UTF-8的作用是指定JSP向客戶端輸出的編碼方式爲“UTF-8”;
◆pageEncoding="UTF-8",爲了讓JSP引擎能正確地解碼含有中文字符的JSP頁面,這在LINUX中很有效;
◆request.setCharacterEncoding("UTF-8");是對請求進行了中文編碼。
有時,這樣仍不能解決問題,還需要這樣處理一下:
String msg = request.getParameter("message"); |
2、Tomcat 5.5中文亂碼
只要把%TOMCAT安裝目錄%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目錄/filters下,如果沒有filters目錄,就創建一個。
2)在你的web.xml里加入如下幾行:
<filter> |
3)完成
2、get方式的解決辦法
1)打開tomcat的server.xml文件,找到區塊,加入如下一行:
URIEncoding=”GBK” |
完整的應如下:
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" |
2)重啓tomcat,一切OK。
3、xmlHttpRequest中文問題
頁面jsp用的GBK編碼
代碼:
<%@ page contentType="text/html; charset=GBK"%> |
代碼:
function addFracasReport() { eval("turnAnalyPage")); application/x-www-form-urlencoded); |
要了解更多請上轉載URL:http://developer.51cto.com/art/200708/53612.htm