JSP代碼的中文處理
在JSP代碼中以下幾處經常需要涉及到中文處理:
1. 在URL中附帶中文參數。這裏中文參數通常可以直接讀取,例如: <%= request.getParameter(“showword”)%>;
2. 在JSWDK中讀取HTML表單提交的中文值這時需要加以編碼,較爲簡潔的寫法是:
String name1=new String(request.getParameter(“user_id”).getBytes(“ISO8859_1”))。
另外,在JDK 1.3的支持下,不需加入<%@ page contentType=“text/html;charset=gb2312”%>;
,而在JDK 1.2.2 以下,即使以上兩種方法同時運用也很不穩定。但在Resin平臺,情況較好,只要在頁面第一行加入:<%@ page contentType=“text/html;charset=gb2312”%>;即可正確處理中文,如果再加代碼則反而不對。
3.在JSWDK中Session包含的中文,如果從表單中讀出的值經過編碼可正確顯示,但直接賦予中文值則不行,而Resin平臺則很好。
4.
在編譯Servlet和JSP時加入代碼選項。在編譯Servlet時使用Java-Encoding
ISO8859-1 myservlet.java;在JSP的ZONE配置文件中,修改編譯參數爲:Compiler=builtin - javac- encoding ISO8859-1。使用這種方法後,不需要做其他的改動就可以正常顯示中文了。
另外,流行的關係數據庫系統都支持數據庫Encoding,也就是說在創建數據庫時可以指定它自己的字符集設置,數據庫的數據以指定的編碼形式存儲。當應用程序訪問數據時,在入口和出口處都會有
Encoding 轉換。對於中文數據,數據庫字符編碼的設置應當保證數據的完整性。
GB2312、GBK、UTF-8
等都是可選的數據庫 Encoding,也可以選擇
ISO8859-1 (8-bit),但會增加了編程的複雜度,ISO8859-1不是推薦的數據庫
Encoding。在JSP/Servlet編程時,可以先用數據庫管理系統提供的管理功能檢查其中的中文數據是否正確。
JSP代碼的中文處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.