locale,中文的顯示和輸入,字型和emacs

2021-04-08 18:33:27 字數 1151 閱讀 4466

reversion:0.5 date:2006/07/22

不使用中文的locale也是可以顯示和輸入中文的,因為從原理上說,對乙個x應用程式,只要它能正確識別要顯示文字的編碼,然後找到相應的字型就能正確顯示,而對中文的輸入來說,在能正確顯示的前提下,只要能知道來自輸入法的文字的編碼也能正確輸入。那這是不是說中文的locale沒有存在的價值呢?不是的,看乙個例子:

在各個locale變數都是en_us.utf-8的環境下開啟emacs(我用的是emacs22),帶上-q選項使不載入~/.emacs檔案,在*scratch*裡輸入「學習」兩個字(如果有亂碼的話可以先嘗試開啟乙個帶中文的utf-8檔案,然後再在*scratch*裡輸入,似乎是emacs22.0.50.1的bug),你會發現兩個字的字型有較大差別,把游標移到「學「字上,用c-u c-x =檢視字元資訊,發現其charset是japanese jisx0208,font是-jis-fixed-...,再檢視「習「字,charset是chinese-gb2312,font是-arphic-ar pl...,顯然這裡emacs把「學」字認為是乙個日語charset裡的字元,而把「習」字認為是乙個中文charset裡的字元,由於在預設情況下emacs為兩個charset使用了不用的字型,就使兩個字看起來不大一致。

雖然可以在fontset裡對這個japanese charset強制指定使用和中文charset相同的字型,比如simsun,但這究竟不是乙個好辦法,因為在一般情況下中文的字型都是沒有包含全部日文的。不過這裡為什麼把這兩個字認為是這兩個charset,而不是utf-8?在en_us.utf-8的環境下從輸入法輸出的字元應該是utf-8才對。這就和字型有關了,由於字型本身的特點,一種字型通常只包括了一種語言的某個字符集裡的字元,至多再加上ascii字元,比如simsun字型除了ascii字元外,只包括了gbk字符集裡的字元,這樣對於utf-8這樣的多語言編碼,就必須把它編碼的各個字元歸到各個字型使用的字符集才能使用這些字型,而在utf-8使用的unicode裡,有一些字元是中日韓共用的,應該把他們歸到哪種字符集呢?沒有乙個特定的使用環境似乎不好辦,這裡emacs在en_us下把「學「字歸入了日文字符集,這對中文的使用者就是不合適的。所以你必須告訴emacs你的使用環境,這裡中文locale就發揮作用了,設定lang=zh_cn.utf-8,或者你只希望中文的顯示和輸入正確而保持英文環境,也可以只設定lc_ctype=zh_cn.utf-8。

設定 putty 支援中文輸入和顯示

預設情況下,putty上中文將顯示亂碼,如果遠端 linux 的 locale 設定為 zh cn.bg2312,gbk,utf8等等 顯示就是亂碼。其實 putty 的中文支援還是很好的。開啟putty主程式,照我這樣設定,我已經用紅框標明 我使用的是yahei mono字型 可以在這裡 登入你的...

ubuntu server顯示並輸入中文

安裝英文版ubuntu,需要輸入含中文字元的命令,所以要給ubuntu server裝中文環境。首先將 etc default locale 檔案的內容修改為 lang zh cn.utf8 language zh cn zh 重啟後即可顯示中文字元。如果想恢復英文的預設編碼,再將配置內容修改為 l...

Slickedit中文顯示與輸入

以前slickedit 2007在john wall 長沙 大俠的指導下,使用fcitx能正確輸入中文,並正常顯示 但slickedit 2008 v13.0.2 出來這麼久,並成功破解後,還是沒能正確顯示漢字,更談不是輸入。原來,必須做一些設定,才能支援中文 首先,安裝scim pinyin,安裝...