Sublime Text 2的YUI Compressor插件中的Unicode解码错误

时间:2012-12-23 22:05:52

标签: sublimetext2 yui-compressor

我似乎无法让Yui Compressor plugin Sublime Text 2工作,并且不断收到如下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x9e in position 19: ordinal not in range(128)
Writing file /C/Users/Nikola Brežnjak/Desktop/yuicompressor-2.4.7/build/justTesting.js with encoding UTF-8
Running java -jar C:\Users\Nikola Brežnjak\AppData\Roaming\Sublime Text 2\Packages\YUI Compressor\bin\yuicompressor-2.4.7.jar --charset utf-8 --preserve-semi --line-break 150 -o justTesting.min.js C:\Users\Nikola Brežnjak\Desktop\yuicompressor-2.4.7\build\justTesting.js
Traceback (most recent call last):
  File ".\sublime_plugin.py", line 337, in run_
  File ".\exec.py", line 154, in run
  File ".\exec.py", line 45, in __init__
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9e in position 19: ordinal not in range(128)

我通过包管理器安装了插件,我确保将java放在PATH变量中,如果我通过控制台运行它,YUI Compressor就可以完成它的工作。

1 个答案:

答案 0 :(得分:3)

问题出在我的Sublime Text安装路径上 - 注意我姓氏中的ž字符。

所以,经过大量搜索,我发现了解决方案 here ,并且如上所述,似乎是exec.py文件中的错误,可能是在Sublime Packages目录中找到(例如:C:\Users\Nikola Brežnjak\AppData\Roaming\Sublime Text 2\Packages\Default)。您必须更改第45行

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

为:

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

在此之后你必须保存文件,插件将自动重新加载,然后YUI压缩器插件将完美地工作。