在locale/字型设定中, 大小写是否重要? 如zh_CN.GBK zh_CN.gbk
*-*-.. --GB2312.1980-0 gb2312.1980 有区别么. 看了一些资料, 有的说没关系.
我的gtk程序总说GBK-0字型找不到.
另外如何同时显示简繁体啊, 象win2k/XP那样. 有关的locale/font如何设定?
thanx
moto 寫:1.大小寫很重要囉...因為程式會依據大小寫判斷...至於有時候為甚麼大小寫沒差,那是因為相關程式有把大寫跟小寫都加入判斷..
2.簡體問題我不熟..可能得請高原兄協助...
3.目前 Linux 走 I18n 架構..要同時顯示簡繁就得看每個軟體自己的處理,Win2k/XP 是作業系統整個都走 Unicode 了,所以簡繁同時顯示都沒問題...
moto 寫:2.簡體問題我不熟..可能得請高原兄協助...
高原之狼 寫:moto 寫:2.簡體問題我不熟..可能得請高原兄協助...
既然被 moto 兄點了名,我就出來說兩句吧。
我對整個簡體中文環境架構也不熟悉,所以只說說我知道的,而且還不一定準確……
首先 locale 的名稱是大小寫敏感的,原因很簡單,因爲 locale 是 glibc 的一部分,而 C 是大小寫敏感的。但是現在的問題在於各處的用法不一致,不知是版本的問題還是 distribution 的問題。所以要解決這個問題首先要弄清自己環境的設定,在 Debian 裏面標準的寫法是全大寫,比如 zh_CN.GB2312,zh_TW.BIG5。但是這樣還不夠,因爲各個應用程序有可能又有自己的寫法,所以還要看應用程序的説明,我印象最深的就是老的(1.0.3)Abiword 居然用 zh-CN 這樣的寫法。
而簡繁共存是相當不同的另一個問題。首先你要知道你的應用程序的 encoding,然後你要確認這個 encoding 能夠同時支持簡體和繁體,也就是說要有簡體字和繁體字的編碼。以 zh_CN.GB2312 為例,這裡的 zh_CN 是 locale,而 GB2312 就是 encoding。GB2312 是一個只有簡體字的 encoding,而 GBK 就同時支持簡體字和繁體字了。UTF8 是 Unicode 的一種表示,自然同時支持簡體和繁體了。(如果有臺灣的朋友熟悉 BIG5 encoding 的歷史,還請不吝賜教。)如果你的 encoding 沒有問題,下一步就是找到相應的字體,一般來説比較新的 TrueType 字體都是支持 GBK 的(其實應該叫做 Windows codepage 936,但那就説來話長了),所以如果你能看到中文,應該就沒有問題,只要選擇合適的 encoding 就行了。
但是如果你不僅僅是要簡繁共存,還要 GB 和 BIG5 兩種 encoding 共存(比如你要打開別人的文件),那就基本不可能了。因爲 GB 和 BIG5 用同樣的一個編碼(實際就是一個正整數)表示不同的字符,這也就是我們經常遇到的亂碼的原因。
所以如果你有具體問題,請說清楚你的運行環境(Debian version, GNOME or KDE, application, etc.)。現在整個 i18n 支持的變化都比較大,是個轉型時期,所以可能要麻煩一些,具體情況具體分析。
拉拉雜雜地說了這麽多,不知能不能幫上一點忙,還是把你說得更糊塗了……
nksin 寫:小结一下, gb2312/gbk/big5 和 unicode一样是一种编码形式, 他们所能表达的字符的
范围, 数量,不同, 同样一个0xC2 0xA9 表示的字符都不同.
而UTF-8是unicode 的一种(外部) 存储形式, GB18030也是这样, 基本是和UTF-8并列.
gb2312/gbk/big5/gb18030/UTF-8 <---> UNICODE
对否.?
高原之狼 寫:既然你有興趣,我就再多說幾句。
所謂 encoding,就是建立各個正整數序列和字符圖形(glyph)之間的一一對應關係,這樣計算機在存儲文字的時候,只要存儲一些整數就行了。
..............
高原之狼 寫:不知這篇文章的作者謝東翰現在在做什麽工作呢?
正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客