我似乎无法让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就可以完成它的工作。
答案 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压缩器插件将完美地工作。