亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1862 | 回復(fù): 0
打印 上一主題 下一主題

在Gentoo下設(shè)置語(yǔ)言環(huán)境(UTF-8) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-03-14 02:06 |只看該作者 |倒序?yàn)g覽

Gentoo Linux中設(shè)置UTF-8
原文:http://www.kklinux.com/html/Love-Linux/Gentoo-Linux/200903/13-4298.html
查找或建立UTF-8 Locale
現(xiàn)在你已經(jīng)理解Unicode的原理了,可以在你的系統(tǒng)中開始使用UTF-8了。
使用UTF-8的初步要求是要有一個(gè)支持國(guó)家語(yǔ)言支持(NLS)的glibc。推薦的方法是設(shè)置文件/etc/locale.gen。關(guān)于如何使用這個(gè)文件并不在這個(gè)文檔涉及的范圍內(nèi),請(qǐng)參閱Gentoo本地化指南。
下一步,我們需要判斷對(duì)應(yīng)我們語(yǔ)言的UTF-8 locale是已經(jīng)存在,還是需要去創(chuàng)建。
檢查UTF-8 locale是否已經(jīng)存在

(把"zh_CN"替換成你想要的locale設(shè)置)
# locale -a | grep 'zh_CN'
zh_CN
zh_CN.UTF-8

我們需要檢查這條命令的輸出里是否有以.UTF-8結(jié)尾的locale。如果沒(méi)有以.UTF-8結(jié)尾的,那么我們需要?jiǎng)?chuàng)建一個(gè)UTF-8兼容的locale。
注意: 只有在沒(méi)有你的語(yǔ)言所對(duì)應(yīng)的UTF-8 locale的時(shí)候才運(yùn)行以下命令。

創(chuàng)建一個(gè)UTF-8 locale

(把"zh_CN"替換成你想要的locale設(shè)置)
# localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

另外一個(gè)指定UTF-8 locale的方法就是在文件/etc/locale.gen中增添相應(yīng)的locale,然后運(yùn)行命令locale-gen生成需要的locale。
/etc/locale.gen中的一行

zh_CN.UTF-8 UTF-8

設(shè)置Locale
要使用新locale我們需要設(shè)置一個(gè)環(huán)境變量:LC_CTYPE(如果你也想改變系統(tǒng)語(yǔ)言的話,請(qǐng)?jiān)O(shè)置LANG變量)。設(shè)置它的方法也有很多種;有的人傾向于只針對(duì)某一個(gè)用戶設(shè)置UTF-8環(huán)境,這種情況下,他們需要在他們自己的~/.profile中設(shè)置(如果用/bin/sh的話);如果用/bin/bash的話,就在 ~/.bash_profile或者~/.bashrc設(shè)置。如果想要更多的信息以及最佳做法(best practices),請(qǐng)參閱本地化手冊(cè)。
其他人選擇設(shè)置全局locale。有一種情況下作者特別推薦這樣設(shè)置,就是在使用/etc/init.d/xdm的時(shí)候。因?yàn)檫@個(gè)啟動(dòng)腳本會(huì)在 前面提到的任何shell啟動(dòng)文件被讀取之前啟動(dòng)顯示管理器和桌面,也就是說(shuō)如果不設(shè)置全局locale,那么這個(gè)腳本啟動(dòng)時(shí)任何相關(guān)的環(huán)境變量都沒(méi)有定義。
全局locale設(shè)置應(yīng)該保存在文件/etc/env.d/02locale中。這個(gè)文件看起來(lái)應(yīng)該和以下內(nèi)容類似:
/etc/env.d/02locale示例

(不用再說(shuō)了,把你的locale代替掉"zh_CN.UTF-8")
LANG="zh_CN.UTF-8"

注意: 你也可以用LC_CTYPE代替LANG。關(guān)于LC_CTYPE影響到的分類的信息,請(qǐng)閱讀GNU locale頁(yè)。

下一步,必須要以之前的改動(dòng)來(lái)更新環(huán)境變量。
更新環(huán)境變量

# env-update
>>> Regenerating /etc/ld.so.cache...
* Caching service dependencies ...
# source /etc/profile

現(xiàn)在,不帶參數(shù)的運(yùn)行l(wèi)ocale命令,看看我們是否已經(jīng)正確設(shè)置了環(huán)境變量。
檢查我們的新locale已經(jīng)在環(huán)境變量里了

# locale
LANG="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

好了。你已經(jīng)在使用UTF-8 locale了,下一步就是配置你的日常使用的應(yīng)用程序了。
應(yīng)用程序支持
當(dāng)Unicode剛開始在軟件世界得到應(yīng)用的時(shí)候,多字節(jié)字符集和用來(lái)寫日常使用的程序的語(yǔ)言如C語(yǔ)言等不是很合拍。即使是今天,有的程序仍然不能正確處理UTF-8。幸運(yùn)的是,大多數(shù)都沒(méi)問(wèn)題!
文件名,NTFS和FAT
在內(nèi)核選項(xiàng)中,有那么幾個(gè)NLS選項(xiàng),但是千萬(wàn)別被混淆了。大多數(shù)情況下,你只需要在內(nèi)核中加入U(xiǎn)TF-8 NLS支持,以及將默認(rèn)NLS設(shè)置成utf8就可以了。
UTF-8 NLS的內(nèi)核配置步驟

File Systems -->
  Native Language Support -->
    (utf8) Default NLS Option
     NLS UTF8
    (Also  other character sets that are in use in
    your FAT filesystems or Joilet CD-ROMs.)

如果你想加載NTFS分區(qū),你需要為mount指定一個(gè)nls=選項(xiàng)。如果你計(jì)劃加載FAT分區(qū),你需要為mount指定一個(gè)codepage=選項(xiàng)。你也可以在內(nèi)核配置中為FAT設(shè)置一個(gè)默認(rèn)的codepage。注意,mount命令中指定的codepage會(huì)覆蓋內(nèi)核中的設(shè)置。
內(nèi)核中的FAT設(shè)置

File Systems -->
  DOS/FAT/NT Filesystems  -->
    (437) Default codepage for fat

你應(yīng)該避免把Default iocharset for fat設(shè)置成UTF-8,因?yàn)檫@個(gè)是不推薦的。相反,你可以在mount的時(shí)候加入選項(xiàng)utf8=true。要獲取更多相關(guān)的信息,請(qǐng)參閱man mount和內(nèi)核文檔/usr/src/linux/Documentation/filesystems/vfat.txt。
如果想改變文件名的編碼,可以用app-text/convmv。
convmv使用示例

# emerge --ask app-text/convmv
(命令格式)
# convmv -f  -t utf-8
(把iso-8859-1換成你想要的原始編碼)
# convmv -f iso-8859-1 -t utf-8 文件名

如果想改變文件內(nèi)容,那么請(qǐng)使用glibc提供的工具iconv。
iconv使用示例

(把iso-8859-1換成你想要的原始編碼)
(檢查輸出是否合法)
# iconv -f iso-8859-1 -t utf-8 文件名
(要轉(zhuǎn)換文件,你必須創(chuàng)建一個(gè)新文件)
# iconv -f iso-8859-1 -t utf-8 文件名 > 新文件名

app-text/recode也可以用來(lái)做這個(gè)事情。
系統(tǒng)終端
重要: 在終端用Unicode,你需要安裝>=sys-apps/baselayout-1.11.9。(譯注:此節(jié)只適用于非英文的其他西方文字,終端里要使用中文需要安裝zhcon)

在終端下開啟UTF-8,你要編輯/etc/rc.conf并且設(shè)置UNICODE="yes",還要閱讀該文件內(nèi)相應(yīng)的注釋——如果你想完全發(fā)揮Unicode的優(yōu)點(diǎn),那么一個(gè)覆蓋范圍足夠廣的字體是很重要的。為了不出錯(cuò),請(qǐng)確保你已經(jīng)按照第一章中所說(shuō)的正確的建立了一個(gè)Unicode locale。
一個(gè)名為KEYMAP變量應(yīng)該指定一個(gè)Unicode鍵盤布局,此變量位于/etc/conf.d/keymaps中。
/etc/conf.d/keymaps示例片段

(把"uk"替換成你自己鍵盤的布局)
KEYMAP="uk"

Ncurses和Slang
注意: 如果你沒(méi)安裝或者不用Slang的話,忽略這段中相關(guān)Slang的信息。

在/etc/make.conf里邊的全局USE標(biāo)記中加入unicode是很明智的,然后再重新emerge sys-libs/ncurses和sys-libs/slang。Portage在升級(jí)你的系統(tǒng)時(shí)也會(huì)自動(dòng)幫你搞定的。
升級(jí)你的系統(tǒng)

# emerge --update --deep --newuse world

我們還需要重新編譯依賴這兩個(gè)庫(kù)的軟件包,這樣USE標(biāo)記的改變就會(huì)被應(yīng)用。我們用到的工具(revdep-rebuild)是gentoolkit的一部分。
重新編譯連接到ncurses或者slang的程序

# revdep-rebuild --soname libncurses.so.5
# revdep-rebuild --soname libslang.so.1

KDE,GNOME和Xfce
所有主流桌面環(huán)境都完全支持Unicode,除了之前已經(jīng)提及的設(shè)置外也不需要進(jìn)一步設(shè)置什么了。這是因?yàn)榈讓拥膱D形工具包(Qt或GTK+2)已經(jīng)支持UTF-8。這樣,所有由這些工具包寫出來(lái)的程序都是原生的支持UTF-8的。
當(dāng)然,也有例外,比如的Xlib和GTK+1。GTK+1需要在~/.gtkrc里邊有一個(gè)iso-10646-1的字體設(shè)置,例如-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1。還有就是使用Xlib或者Xaw的程序需要有類似的設(shè)置,不然他們會(huì)罷工的。
注意: 如果你安裝了Gnome控制中心的某個(gè)版本的話,就用它來(lái)設(shè)置好了。選任何一個(gè)iso10646-1的字體就可以了。

示例~/.gtkrc(為GTK+1)定義兼容Unicode的字體

style "user-font"
{
    fontset="-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1"
}
widget_class "*" style "user-font"

如果有一個(gè)程序同時(shí)支持Qt和GTK+2的圖形界面,那么GTK+2的圖形界面應(yīng)該會(huì)更好的支持Unicode。
X11和字體
重要: x11-base/xorg-x11對(duì)Unicode的支持比XFree86更好,極度推薦。

TrueType字體支持Unicode,而且Xorg自帶的大多數(shù)字體都有很好的字符支持,不過(guò)顯然這些字體不可能覆蓋Unicode里的每一個(gè)字。要為X提供東亞字符支持的話,記得在USE標(biāo)記中加入cjk。很多其他的程序也使用這個(gè)USE標(biāo)記,所以有理由把它加入永久的USE標(biāo)記。
還有,Porage樹里有幾個(gè)字體也支持Unicode。
可選:安裝一些支持Unicode的字體

# emerge terminus-font intlfonts freefonts cronyx-fonts corefonts

窗口管理器和終端模擬器
不基于GTK或Qt的窗口管理器一般也會(huì)有很不錯(cuò)的Unicode支持,因?yàn)樗麄円话愣加肵ft庫(kù)來(lái)處理字體的。如果你的窗口管理器不用Xft處理字體,你仍然可以把之前提及的字體設(shè)置(即-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1)作為Unicode字體使用。
使用Xft并支持Unicode的終端模擬器較難獲得。除了Konsole和gnome-terminal外,Portage中最好的選擇就是x11-terms/rxvt-unicode,xfce-extra/terminal ,gnustep-apps/terminal,x11-terms/mlterm,或者編譯時(shí)帶了unicodeUSE的x11-terms/xterm并且用uxterm啟動(dòng)。app-misc/screen在以screen -U啟動(dòng)的時(shí)候也支持UTF-8,或者將以下內(nèi)容加入到~/.screenrc:
支持UTF-8的~/.screenrc

defutf8 on

Vim,Emacs,Xemacs和Nano
Vim完全支持UTF-8,而且還有內(nèi)置UTF-8文件檢測(cè)。可以用:help mbyte.txt獲取更多的信息。
Emacs 22.x以及更高的版本也完全支持UTF-8。Xemacs 22.x暫時(shí)還不支持組合字符。
低版本的Emacs和Xemacs也許需要安裝app-emacs/mule-ucs或app-xemacs/mule-ucs,然后把以下內(nèi)容加入到~/.emacs以支持UTF-8里的CJK(中日韓)語(yǔ)言。
Emacs CJK UTF-8支持

(require 'un-define)
(require 'jisx0213)
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
Nano從1.3.6版本以后都完全支持UTF-8的。
Shell
現(xiàn)在,bash通過(guò)GNU readline庫(kù)完全支持Unicode。Z Shell(zsh)如果有unicodeUSE標(biāo)志的話,也可以提供Unicode支持。
C shell,tcsh和ksh完全不支持UTF-8的。
Irssi
Irssi完全支持UTF-8,雖然她還是要求用戶去設(shè)置一個(gè)選項(xiàng)。
為Irssi開啟UTF-8

/set term_charset UTF-8

那些對(duì)ASCII以外的字符不使用UTF-8字符集的頻道,可以用/recode命令來(lái)轉(zhuǎn)換這些字符。輸入/help recode可以獲取更多信息。
Mutt
Mutt郵件用戶代理有很不錯(cuò)的Unicode支持。你不需要在配置文件中加入任何東西就可以讓Mutt支持UTF-8。如果你的配置文件(包括簽名)都是UTF-8編碼的話,Mutt不需要任何修改就可以在Unicode環(huán)境中正確工作。
注意: 你也許還會(huì)在用Mutt閱讀郵件的時(shí)候看到'?'。這是有人用的郵件客戶端沒(méi)有正確的指出所用的字符集。除了讓他們好好配置郵件客戶端之外似乎沒(méi)什么別的方法了。

可以參考Mutt Wiki獲取更多信息。
Man
Man是任何Linux機(jī)器都有的。為了確保man里的Unicode字符被正確渲染,文件/etc/man.conf中的一行需要被替換:
man.conf的Unicode支持

(原始的)
NROFF           /usr/bin/nroff -Tascii -c -mandoc
(替換后)
NROFF           /usr/bin/nroff -mandoc -c

elinks和links
這些是常用的基于文本的瀏覽器,我們看看怎么為它們打開UTF-8支持。對(duì)于elinks和links,有兩個(gè)方法,使用瀏覽器中Setup選項(xiàng)設(shè)置或者直接修改配置文件。要在Setup選項(xiàng)中設(shè)置的話,首先用elinks或links打開一個(gè)網(wǎng)站,然后按Alt+S進(jìn)入Setup菜單,再選擇Terminal選項(xiàng),或者按T。下拉到最后一個(gè)選項(xiàng)UTF-8 I/O并且按回車選擇它。然后保存并且離開菜單。links中你也許需要再按一次Alt+S然后按S來(lái)保存設(shè)置。要在配置文件中改變,請(qǐng)看以下內(nèi)容。
為elinks/links開啟UTF-8

(elinks的話,編輯/etc/elinks/elinks.conf或者~/.elinks/elinks.conf,
把下面這行加入到文件里)
set terminal.linux.utf_8_io = 1
(links的話,編輯~/.links/links.cfg,把下面這行加入到文件中)
terminal "xterm" 0 1 0 us-ascii utf-8

Samba
Samba是一套為UNIX系統(tǒng),如Mac,Linux和FreeBSD,而實(shí)現(xiàn)SMB(服務(wù)器消息塊)協(xié)議的軟件。這個(gè)協(xié)議有的時(shí)候也會(huì)被稱作公共Internet文件系統(tǒng)(CIFS)。Samba也包括了NetBIOS系統(tǒng)——Windows網(wǎng)絡(luò)中用來(lái)文件共享的。
為Samba開啟UTF-8

(編輯/etc/samba/smb.conf,把以下內(nèi)容添加到[global]部分)
dos charset = 1255
unix charset = UTF-8
display charset = UTF-8

測(cè)試
Internet有很多UTF-8測(cè)試網(wǎng)站的。net-www/w3m,net-www/links,net-www/elinks,net-www/lynx和所有基于Mozilla的瀏覽器(包括Firefox)都支持UTF-8。Konqourer和Opera也完全支持UTF-8。
當(dāng)使用那些純文本W(wǎng)eb瀏覽器的時(shí)候,一定要確保所在的終端也支持Unicode。
如果你看到某些字符顯示為一個(gè)小方框并且中間有字母或者數(shù)字的,那么就是說(shuō)你的字體沒(méi)有UTF-8想要的相應(yīng)的符號(hào)或者字型。所以就用一個(gè)方框代替,并且里邊是對(duì)應(yīng)該字符的UTF-8的十六進(jìn)制碼。
一個(gè)W3C UTF-8測(cè)試頁(yè)面
一個(gè)UTF-8測(cè)試頁(yè)面,由法蘭克福大學(xué)提供
輸入法
Dead keys(在X中)可以用來(lái)輸入一些不包括在你鍵盤上的字符。方法是按下你的右Alt鍵(在有的國(guó)家也叫AltGr),同時(shí)按下一個(gè)回車以左的非字母鍵(修改鍵),然后松開他們,最后按一個(gè)字母鍵。這樣Dead key應(yīng)該會(huì)修改這個(gè)字母。在按下AltGr以及修改鍵的時(shí)候,也可以同時(shí)按下Shift鍵以進(jìn)一步修改輸入內(nèi)容。
在X中開啟Deak Keys,你需要一個(gè)支持它的布局。大多數(shù)歐洲布局都默認(rèn)有Dead key支持的,但是,北美布局似乎并不是這樣。雖然在一定程度上不同的布局有不一致的地方,但是簡(jiǎn)單的解決方法似乎就是例如直接指定"en_US"布局而不是"us"布局。布局是在文件/etc/X11/xorg.conf里邊設(shè)置的,就像這樣:
/etc/X11/xorg.conf snippet

Section "InputDevice"
    Identifier "Keyboard0"
    Driver     "kbd"
    Option     "XkbLayout" "en_US" # 而不是僅僅 "us"
    (其他 Xkb 選項(xiàng)可以放這里)
EndSection

注意: 如果你正使用北美布局或者一個(gè)Dead key看起來(lái)不起效的布局時(shí)才需要做之前的這個(gè)修改。歐洲用戶的Deak keys應(yīng)該是直接就可以用的。

這個(gè)修改要在X服務(wù)重新啟動(dòng)后才會(huì)生效。要是你想馬上生效的話,用setxkbmap工具。比如setxkbmap en_US。


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u2/70625/showart_1862692.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP