Русское сообщество Sublime Text

Основной раздел => Вопросы и ответы => Тема начата: nikstorm от Декабря 17, 2014, 15:11:44

Название: Less2css в sublime text 3 выдает ошибку
Отправлено: nikstorm от Декабря 17, 2014, 15:11:44
При попытке конвертации less в консоли вижу такое:
[less2css] Converting C:\code.less to C:\code.css
Traceback (most recent call last):
File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 549, in run_
return self.run(edit)
File "less2css in C:\Documents and Settings\xxx\Application Data\Sublime Text 3\Installed Packages\Less2Css.sublime-package", line 40, in run
File "lesscompiler in C:\Documents and Settings\xxx\Application Data\Sublime Text 3\Installed Packages\Less2Css.sublime-package", line 89, in convertOne
File "lesscompiler in C:\Documents and Settings\xxx\Application Data\Sublime Text 3\Installed Packages\Less2Css.sublime-package", line 223, in convertLess2Css
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xad in position 111: invalid start byte

Кто-нибудь знает, что за напасть?
Заранее спасибо.
Название: Re: Less2css в sublime text 3 выдает ошибку
Отправлено: Loac от Декабря 17, 2014, 22:26:50
В имени пользователя "ххх" есть кириллица?
Название: Re: Less2css в sublime text 3 выдает ошибку
Отправлено: nikstorm от Декабря 27, 2014, 14:13:20
Да какая кириллица? Я же не сумасшедший.
Название: Re: Less2css в sublime text 3 выдает ошибку
Отправлено: zo0m от Декабря 27, 2014, 21:44:05
Может не по теме, но то что приходит как UTF-8 перед обработкой нужно преобразовать в юникод. Копать нужно в сторону модуля codecs:
Вот пример отработки слов из utf-8 файла
import codecs
...
def word_code_generator(word):
    '''
       Возвращает числовой код заданного слова. Кодировка файла списка слов - UTF-8 => значит слова приходят закодированные.
       Для работы с чистым юникодом, их нужно раскодировать word.decode('utf-8').
    '''
    unicode_list = list((word).decode('utf-8')) # utf-8 => unicode
    #print (unicode_list) # debug | посмотреть на слова которые приходят
   ...
   ...

А это пример обработки слов введенных с консоли (под виндами):
console_encoding = sys.stdout.encoding
#print ("[*]console_encoding =", console_encoding, "\n") # debug | посмотреть кодировку консоли
str_command = raw_input("Input command [0 for Exit] > ")
unicode_list = list((str_command).decode(console_encoding)) # cp866 (русская кодировка консоли) => unicode
for i in range(len(unicode_list)): # Перебрать каждый символ слова
            print ("unicode('",unicode_list[i], "') = ", ord((unicode_list[i]).lower())) # debug | посмотреть на коды юникод-букв
...
...