java中實(shí)現(xiàn)國(guó)際化
實(shí)現(xiàn)國(guó)際化
由于要實(shí)現(xiàn)中英日文的顯示,采取以下步驟:
開發(fā)和編譯代碼時(shí)指定字符集為UTF-8。Eclipse可以在項(xiàng)目屬性中設(shè)置。 使用過(guò)濾器,如果所有請(qǐng)求都經(jīng)過(guò)一個(gè)Servlet控制分配器,那么使用Servlet的filter執(zhí)行語(yǔ)句,將所有來(lái)自瀏覽器的請(qǐng)求(request)轉(zhuǎn)換為UTF-8,因?yàn)闉g覽器發(fā)過(guò)來(lái)的請(qǐng)求包根據(jù)瀏覽器所在的操作系統(tǒng)編碼,可能是各種形式編碼。request.setCharacterEncoding("UTF-8")。需要配置web.xml 激活該Filter。在JSP頭部聲明:
<%@ page contentType="text/html;charset= UTF-8" %>。
在Jsp的html代碼中,聲明UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
設(shè)定數(shù)據(jù)庫(kù)連接方式是UTF-8。例如連接MYSQL時(shí)配置URL如下:
jdbc:mysql://localhost:3306/feedback_db?useUnicode=true&characterEncoding=UTF-8
其他和外界交互時(shí)能夠設(shè)定編碼時(shí)就設(shè)定UTF-8,例如讀取文件,操作XML等。
不同時(shí)區(qū)時(shí)間顯示
由于客戶端可能處于不同的時(shí)區(qū),因此應(yīng)該顯示不同服務(wù)器時(shí)間。由于與客戶端有關(guān),因此需利用一段javaScript代碼,從客戶端獲取其所在的時(shí)區(qū)偏移量。該偏移量是針對(duì)GMT時(shí)間而言的,也就是格林威治時(shí)間,以分鐘為單位。
function getTimezone() { var d = new Date(); document[getNetuiTagName("loginForm", this)][getNetuiTagName("timezone", this)].value= d.getTimezoneOffset(); }
獲取之后將他傳回服務(wù)器端并保存在session中。顯示時(shí)間時(shí)根據(jù)這個(gè)偏移量來(lái)計(jì)算顯示的時(shí)間。
posted on 2006-05-10 08:30 狼愛上貍 閱讀(466) 評(píng)論(0) 編輯 收藏 所屬分類: JAVA