Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

32.10. 國際化 Locale database。

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

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

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

  1. 定義一個數組

  2. 使用資料庫

  3. 使用檔案

  4. 使用資料結構

32.10.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