當前位置:才華齋>計算機>java語言>

Java Web專案中解決中文亂碼的方法

java語言 閱讀(3.22W)

工作當中遇到的事情比較雜,因此涉及的知識點也很多。特別是亂碼的問題,關於亂碼的解決方法有哪些呢?下面是相關的知識,歡迎閱讀。

Java Web專案中解決中文亂碼的方法

  第一種情況:呼叫jsp頁面中文顯示亂碼

問題描述:通過瀏覽器呼叫jsp頁面,在瀏覽器中顯示的中文內容出現亂碼。

解決方法:首先確認本jsp在編輯器中儲存檔案內容時,使用的是utf-8的編碼格式,然後在jsp頁面的開始處新增<%@ pageEncoding="utf-8"%>就可以解決這種中文亂碼問題

  第二種情況:呼叫servlet頁面顯示亂碼

問題描述:通過瀏覽器呼叫servlet,servlet在瀏覽器中顯示的內容出現亂碼。

解決方法:在servlet使用response物件輸出前,先執行ontentType("text/html;charset=utf-8");設定輸出內容的編碼為utf-8。

  第三種情況:post表單傳遞引數亂碼

問題描述:通過jsp,html,或servlet中的表單元素把引數提交給對應的jsp或者servlet時,在接收的jsp或servlet中接收到的引數中文顯示亂碼。

例如:提交jsp程式碼如下:<%@ page language="Java" pageEncoding="utf-8"%>接收引數的jsp程式碼如下:<% @ page language="java" pageEncoding="utf-8"%>接收表單 <% 在這裡插入 haracterEncoding("utf-8");

%>

使用者名稱:<%=arameter("username")%>

密 碼:<%=arameter("password")%>

解決方法:在接收post提交的引數前,使用haracterEncoding("utf-8")設定接收引數的內容格式為utf-8編碼。見接收表單中的.插入內容即可。當然這種亂碼問題最好使用中文過濾器的方法最好

  第四種情況:URI方式傳遞引數亂碼

問題描述:使用表單傳遞引數,可以通過post或get方式,不適用表單,還可以使用連結方式傳遞引數,這種傳遞引數方式本質上就是get方式傳遞引數,這種方式中傳遞的引數出現中文時也可能出現亂碼。如:顯示使用者名稱和密碼

解決方法:問題本質是get方式傳遞的引數內容預設編碼方式問ISO8859-1,而且使用haracterEncoding("utf-8")也無法解決問題,要解決這個問題,修改tomcat服務器的配置檔案。修改tomcat目錄下的conf/檔案的第43行:修改前內容:

修改後內容:

這樣就可以解決這種型別的亂碼問題。

  第五種情況:

問題描述:在使用一些類庫或者框架時,為了實現頁面內容國際化,需要編寫對應的properties檔案。而properties檔案中的中文內容在顯示的時候也會出現亂碼。

解決方法:這個亂碼問題可以通過jdk中的native2ascii工具解決。使用如下命令:native2ascii -encoding utf-8 erties display_zh_erties出現亂碼問題的原因是因為java編譯器只能處理Latin-1或unicode編碼的字元檔案。