Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | About

15.11. 國際化 Locale database。

在開始具體介紹之前,需要先介紹幾個術語:

l10n有很多歷史遺留問題,l10n目前已經被i18n取代。

我自己曾經使用過下面四種方式實現語言包

  1. 定義一個數組

  2. 使用資料庫

  3. 使用檔案

  4. 使用資料結構

15.11.1. Unicode

相比幾年前,目前各種語言對UTF-8支持都比較好。

在BBS上常常看到一些網友抱怨UTF-8出現“亂碼”問題,讓我們看看都有哪些地方涉及編碼問題。

用戶輸入法->IDE開發環境,瀏覽器->web容器->資料庫

任何一個環節出現問題有可能出現問題

  • 首先是輸入法,早期輸入法可能是GB2312或GBK。

  • 其次是IDE開發環境,當你創建一個空檔案時,它的已經具備某種編碼,一般外國開發工具預設是acsii,這一點我認為Dreamware做的最好,可以隨時切換編碼。

  • 瀏覽器現在基本不用擔心

  • web容器apache 2.x對unicode支持很好,tomcat本身機器碼就是unicode。

  • 資料庫問題也不大,PostgreSQL相比MySQL對Unicode支持也早,也比較好。MySQL這方面有點複雜。

[提示]提示

如果你不考慮使用Unicode並且想支持繁體和簡體中文,你可以使用GBK,但我建議你使用GB18030。

Unicode不是最好的選擇,它占用三個位元組,數據量較大,選擇適合你的編碼,如果你是英文網站,請使用ISO-8859-1,如果是簡體中文,請使用GB2312

15.11.2. 繁簡轉換

方案1: User -> Squid ->Web Server

修改squid源碼,加入iconv(big5,gb2312,html page)

e.g.1 user (gb.example.org) -> Squid (big5->gb2312) -> web server
e.g.2 user (big5.example.org) -> Squid (gb2312->big5) -> web server