2010-09-17 270 views
0

我最近收購了一臺MacBook。我編譯了Mercurial 1.6.3,並將其全部設置爲NetBeans。Mac OS X和Mercurial

的事情是,每當我嘗試提交,因爲我正在寫修訂的消息,我的重音字符的域名(西班牙語),我得到這樣的錯誤:

transaction abort! 
rollback completed 
abort: decoding near 'Naim? Batuta ': 'utf8' codec can't decode byte 0x8e in position 4: unexpected code byte! 

我在控制檯上使用的語言環境,我得到這個:

LANG= 
LC_COLLATE="C" 
LC_CTYPE="UTF-8" 
LC_MESSAGES="C" 
LC_MONETARY="C" 
LC_NUMERIC="C" 
LC_TIME="C" 
LC_ALL= 

我嘗試設置LC_CTYPE =「C.UTF-8」,現在變成了LC_CTYPE =「C」爲好,但水銀一直顯示我同樣的消息。

起初我以爲是NetBeans切換字符編碼,但後來我嘗試了一個簡單的hg commit,它返回了同樣的錯誤。

我已經閱讀無處不在,儘管這些文章提到了Mercurial,Mac OS X和Python的字符編碼,但有些補丁修復它(前一段時間,因此它們應該已經在Mercurial中),但我沒有找到了真正的解決方案

它發生在你之前嗎?你是如何解決它的?請幫幫我。它在我的桌面(Windows)機器上工作得很好,但有時我需要在我離開時進行修改,這使我發瘋。

在此先感謝!

回答

0

不知道究竟發生了什麼。我從我的彙編中刪除了Mercurial的任何文件,並且只使用了安裝包。

是的,它現在可以創造奇蹟。謝謝你們!

0

您的西班牙語語言環境應該是es_ES.UTF-8(如果您的終端使用UTF-8)或es_ES(它將使用ISO-8859-1編碼)。 「C」語言環境對西班牙語accentend字符一無所知。

無論如何,如果在你的終端正確設置本地化沒有幫助,那麼你可以嘗試在你的.hgrc配置文件設置

[ui] 
fallbackencoding=ISO-8859-1 

+0

我嘗試了所有這些建議,但似乎沒有任何工作。我不斷收到相同的錯誤,無論是用戶名中的重音字符還是提交信息。 :'( – 2010-09-17 17:46:54

1

當我在我的Mac OSX發出locale命令,我得到以下

LANG="en_US.UTF-8" 
LC_COLLATE="en_US.UTF-8" 
LC_CTYPE="en_US.UTF-8" 
LC_MESSAGES="en_US.UTF-8" 
LC_MONETARY="en_US.UTF-8" 
LC_NUMERIC="en_US.UTF-8" 
LC_TIME="en_US.UTF-8" 
LC_ALL="en_US.UTF-8" 

對你來說應該是

LANG=es_ES.UTF-8 
LC_ALL=es_ES.UTF-8 

你出口這些?因爲你的語言環境應該在導出後顯示不同的值。

export LC_ALL=es_ES.UTF-8 
export LANG=es_ES.UTF-8 
+0

不是,它沒有工作,我嘗試將locale切換到es_ES.UTF-8,但沒有用,我只是不想使用MacPorts端口,只是想自己編譯它。喜歡它的工作,直到我不得不把它的工作,你還認爲它可能是什麼?切換到git?:s謝謝! – 2010-09-17 23:10:03

+0

順便說一句,我剛剛退出終端,我也應該重新啓動嗎?不要想,但你永遠不會知道。 – 2010-09-17 23:21:44

+0

是的,我會建議在.bash_profile中添加兩行,退出終端,然後重新啓動並檢查locale命令輸出 – pyfunc 2010-09-17 23:59:07