很久沒用svn命令,忽然發(fā)現(xiàn):
C:\Documents and Settings\Administrator>svn list --non-interactive "file:///D:/u
sr/svn/repositories/demo/"
dir 2/
dir1/
?\230?\150?\176?\229?\187?\186?\230?\150?\135?\228?\187?\182?\229?\164?\185/
?\230?\150?\176?\229?\187?\186?\230?\150?\135?\228?\187?\182?\229?\164?\185 (2)/
C:\Documents and Settings\Administrator>
返回的內(nèi)容竟然是亂碼,正確的應(yīng)該是:
dir 2/
dir1/
新建文件夾
新建文件夾 (2)
安裝最新版本的svn: 1.4.5 ,重啟Windows,問題還是存在。
在網(wǎng)上找了很久,最后,在http://www.etng.net/blog/2006/09/26/subversion-14%e7%89%88%e6%9c%ac%e7%9a%84windows%e6%9c%8d%e5%8a%a1%e9%85%8d%e7%bd%ae%e6%96%b9%e6%b3%95/ 找到了解決方法,文章說,設(shè)置Windows系統(tǒng)環(huán)境變量:
LANG=zh_CN.UTF8
APR_ICONV_PATH=C:\Program Files\Subversion\iconv
SVN_EDITOR=notepad.exe
就可以解決。設(shè)置方法:對(duì)“我的電腦”按右鍵,選擇“屬性”,選擇“高級(jí)”欄,單擊“環(huán)境變量”,檢查“系統(tǒng)變量”列表是否有上述3個(gè)參數(shù),如果有則進(jìn)行修改,如果沒有,則進(jìn)行添加;修改完后,按多次“確定”。 此時(shí),系統(tǒng)環(huán)境變量已經(jīng)生效,再打開命令提示符,執(zhí)行命令:
Microsoft Windows XP [版本 5.1.2600] (C) 版權(quán)所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>"C:\Program Files\Subversion\bin\svn.exe " list file:///D:/usr/svn/repositories/demo dir 2/ dir1/ 新建文件夾/ 新建文件夾 (2)/
C:\Documents and Settings\Administrator>
|
中文顯示正常了。
至于是否可以設(shè)置 LANG=zh_CN.GBK 或者 zh_CN.GB2312 或者 zh_CN.GB13000 等,我嘗試了各種取值,似乎不影響svn的輸出結(jié)果。
APR_ICONV_PATH的設(shè)置應(yīng)該是關(guān)鍵所在,因?yàn)閕conv目錄保存了各種編碼的轉(zhuǎn)換配置文件。按我的猜想:有了這些配置文件,就可以實(shí)現(xiàn)從Unicode與本地編碼的轉(zhuǎn)換,從而實(shí)現(xiàn)任意編碼之間的轉(zhuǎn)換。不知道猜得對(duì)不對(duì)?經(jīng)過測(cè)試,如果APR_ICONV_PATH沒有配置,則可能導(dǎo)致亂碼,如果APR_ICONV_PATH配置錯(cuò)誤,則很可能導(dǎo)致亂碼。當(dāng)APR_ICONV_PATH配置正確時(shí),總能正確顯示中文路徑,因此,應(yīng)正確配置APR_ICONV_PATH。
至于,SVN_EDITOR=notepad.exe,的配置,似乎沒使用用處。
如果是在DOS批處理中,可以使用:
set LANG=zh_CN.UTF8
set APR_ICONV_PATH=C:\Program Files\Subversion\iconv
set SVN_EDITOR=notepad.exe
來設(shè)置環(huán)境變量,確保svn命令需要的環(huán)境變量配置正確。