Linux下Sublime 編譯時報UnicodeDecodeError:錯誤

文章參考:http://eric.themoritzfamily.com/python-encodings-and-unicode.htmlphp

http://desert3.iteye.com/blog/757508html

https://github.com/misfo/Shell-Turtlestein/issues/6python

http://www.sublimetext.com/forum/viewtopic.php?f=3&t=2610git

https://github.com/uipoet/sublime-jshint/issues/24github

http://www.sublimetext.com/forum/viewtopic.php?f=3&t=2441&start=0&hilit=getfilesystemencoding(*)ui

完整的錯誤是:spa

Traceback (most recent call last):
  File ".\sublime_plugin.py", line 325, in run_
  File ".\exec.py", line 145, in run
  File ".\exec.py", line 42, in __init__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 9: ordinal not in range(128).net

 

這些文章不少是有重複內容的,我主要看的是後面標*的那一篇;code

這個問題的原由是配置文件目錄下Packages\Default目錄下的exec.py在編輯環境變量,可是環境變量中的字符集確少了ascii字符集htm

個人解決方案(參靠上面第6篇):

找到配置文件目錄位置(能夠參考個人另外一篇博文修改sublime Text 的默認配置文件位置

其中的Packages\Default\exec.py,打開編輯

找到第41-42行:

for k, v in proc_env.iteritems():

 proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

兩種修改方案:

一、果斷刪掉!(你沒看錯,就是這樣)

二、對它進行異常處理,避免它出錯時中止程序運行就像這樣:

     for k, v in proc_env.iteritems():
            try:
                proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
            except UnicodeDecodeError:
                print "Encoding error..."
                print "VARIABLE: ", k, " : ", v

而後你在嘗試對pyhon或是其餘程序的編譯,就會發現切正常了!

相關文章
相關標籤/搜索