史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 程式 & 網頁設計技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-11-02, 06:03 PM   #1 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Java中文化的處理(總結)

(原創)Java中文化的處理(總結)
目標是2點:1、程序能正確顯示(輸出)中文(或者其他任何地方的文字) 2、程序能正確得到(輸入)中文(或者其他任何地方的文字)。

相關的環境有:操作系統的支持,資料庫的支持,編譯器的支持,執行器的支持,程序的支持。
操作系統、資料庫不再考慮了,應該自己設定正確。編譯器就是Javac,國際化的支持,還是不錯的,也不再考慮。執行器就是Java或者app server,一般不再考慮,但有些app server,還是指定file.encoding比較好。程序就是自己寫的程序,當然是要處理的部分。

java對國際化的支持,是不錯的,那麼它是怎麼做到的呢?具我的瞭解,它是判斷了操作系統的local內容。所以,類似的,自己寫的程序,也這麼做,效果最好。

application比較簡單,不用多說什麼,把要輸出文字做成一個一個語言包,程序取的時候,隨便指定上encoding,就OK了。

web上的複雜一點。但是一樣的道理,貼一段程序,大家都明白了


程式碼:--------------------------------------------------------------------------------
String clientLanguage = request.getHeader("Accept-Language");
if ("zh-CN".equals(clientLanguage)) {
request.setCharacterEncoding("GBK");
response.setContentType("text/html; charset=GBK");
}
else if ("zh-TW".equals(clientLanguage)) {
request.setCharacterEncoding("BIG5");
response.setContentType("text/html; charset=BIG5");
}
else if ("ja".equals(clientLanguage)) {
request.setCharacterEncoding("Shift_JIS");
response.setContentType("text/html; charset=Shift_JIS");
}
else if ("ko".equals(clientLanguage)) {
request.setCharacterEncoding("EUC-KR");
response.setContentType("text/html; charset=EUC-KR");
}
else {
request.setCharacterEncoding("ISO-8859-1");
response.setContentType("text/html; charset=ISO-8859-1");
}
需要特別解釋一下的是:zh-CN不能用gb2312,因為字串集太小,「朱鎔基」不認,所以要放大一下。
--------------------------------------------------------------------------------



在程序內部資料傳送的問題上(JDBC),有2套思路:1、按i18n.jar中的EncodingSet做(中文用cp936)。2、統一用unicode,但需要在發和送之前要轉碼方法。我的決定是,新模組的開發選項2,老模組的修改選項1,嘿嘿,理由也很簡單,老模組的資料長度已經類BIOS,轉unicode後長度上會有問題。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2003-11-03, 04:22 PM   #2 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 45071
在線等級: 級別:0 | 在線時長:0小時 | 升級還需:5小時
註冊日期: 2003-03-05
VIP期限: 2005-12
文章: 84
精華: 0
預設

謝謝分享
ian78 目前離線  
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:17 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1