Java Web開發(fā)項目中中文亂碼解決方法匯總
Java Web項目中,解決中文亂碼方法總結如下
第一種情況:調用jsp頁面中文顯示亂碼
問題描述:通過瀏覽器調用jsp頁面,在瀏覽器中顯示的中文內容出現(xiàn)亂碼。
解決方法:首先確認本jsp在編輯器中保存文件內容時,使用的是utf-8的編碼格式,然后在jsp頁面的開始處添加<%@ pageEncoding="utf-8"%>就可以解決這種中文亂碼問題
第二種情況:調用servlet頁面顯示亂碼
問題描述:通過瀏覽器調用servlet,servlet在瀏覽器中顯示的內容出現(xiàn)亂碼。
解決方法:在servlet使用response對象輸出前,先執(zhí)行response.setContentType("text/html;charset=utf-8");設定輸出內容的編碼為utf-8。
第三種情況:post表單傳遞參數(shù)亂碼
問題描述:通過jsp,html,或servlet中的表單元素把參數(shù)提交給對應的jsp或者servlet時,在接收的jsp或servlet中接收到的參數(shù)中文顯示亂碼。
例如:
提交jsp代碼如下:
<%@ page language="java" pageEncoding="utf-8"%> <html> <head> <title>輸入表單</title> </head> <body> <form id="inputForm" name="inputForm" method="post" action="display.jsp"> 用戶名:<input type="text" name="username"/><br/> 密 碼 :<input type="password" name="password"/><br/> <input type="submit" name="submit" value="提交"/> </form> </body> </html>
接收參數(shù)的jsp代碼如下:
<% @ page language="java" pageEncoding="utf-8"%> <html> <head> <tilte>接收表單</title> </head> <body> <% 在這里插入 request.setCharacterEncoding("utf-8"); %> 用戶名:<%=request.getParameter("username")%><br/> 密 碼:<%=request.getParameter("password")%><br/> </body> </html>
解決方法:在接收post提交的參數(shù)前,使用request.setCharacterEncoding("utf-8")設定接收參數(shù)的內容格式為utf-8編碼。見接收表單中的插入內容即可。當然這種亂碼問題最好使用中文過濾器的方法最好。
第四種情況:URI方式傳遞參數(shù)亂碼
問題描述:使用表單傳遞參數(shù),可以通過post或get方式,不適用表單,還可以使用鏈接方式傳遞參數(shù),這種傳遞參數(shù)方式本質上就是get方式傳遞參數(shù),這種方式中傳遞的參數(shù)出現(xiàn)中文時也可能出現(xiàn)亂碼。
如:
解決方法:問題本質是get方式傳遞的參數(shù)內容默認編碼方式問ISO8859-1,而且使用request.setCharacterEncoding("utf-8")也無法解決問題,要解決這個問題,修改tomcat服務器的配置文件。修改tomcat目錄下的conf/server.xml文件的第43行:
修改前內容:
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="200000" redirecPort="8443"/>
修改后內容:
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="200000" redirecPort="8443" URIEncoding="utf-8"/>
這樣就可以解決這種類型的亂碼問題。
第五種情況:
問題描述:在使用一些類庫或者框架時,為了實現(xiàn)頁面內容國際化,需要編寫對應的properties文件。而properties文件中的中文內容在顯示的時候也會出現(xiàn)亂碼。
解決方法:這個亂碼問題可以通過jdk中的native2ascii工具解決。使用如下命令:
出現(xiàn)亂碼問題的原因是因為java編譯器只能處理Latin-1或unicode編碼的字符文件。
以上就是本文的全部內容,希望對大家的學習有所幫助。
相關文章
J2EE Servlet基礎在瀏覽器上運行HelloServlet的方法
這篇文章主要介紹了J2EE Servlet基礎在瀏覽器上運行HelloServlet的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10java 實現(xiàn)websocket的兩種方式實例詳解
這篇文章主要介紹了java 實現(xiàn)websocket的兩種方式實例詳解,一種使用tomcat的websocket實現(xiàn),一種使用spring的websocket,本文通過代碼給大家介紹的非常詳細,需要的朋友可以參考下2018-07-07基于Java+SpringBoot+Vue前后端分離實現(xiàn)倉庫管理系統(tǒng)
這篇文章主要介紹了一個完整的倉庫管理系統(tǒng)是基于Java+Springboot + Vue前后端分離編寫的,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06解決MyEclipse中Maven設置jdk版本jdk1.8報錯問題
今天安裝了jdk1.8、tomcat8、和maven3.5.2,弄好后在myeclipse新建了一個maven項目,項目默認是jdk1.5,改成jdk1.8后項目報錯2018-10-10java中 String和StringBuffer的區(qū)別實例詳解
這篇文章主要介紹了java中 String和StringBuffer的區(qū)別實例詳解的相關資料,一個小的例子,來測試String和StringBuffer在時間和空間使用上的差別,需要的朋友可以參考下2017-04-04Java使用組合模式實現(xiàn)表示公司組織結構功能示例
這篇文章主要介紹了Java使用組合模式實現(xiàn)表示公司組織結構功能,簡單描述了組合模式的概念、功能并結合實例形式分析了Java使用組合模式實現(xiàn)公司組織結構表示功能具體操作步驟與相關注意事項,需要的朋友可以參考下2018-05-05SpringBoot 入門教程之引入數(shù)據(jù)傳輸層的方法
這篇文章主要介紹了SpringBoot 入門教程之引入數(shù)據(jù)傳輸層的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07