Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2016 22:30:34

AxaRu
Зарегистрирован: 2015-04-11
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Непонятки с кодировкой.

Написал скрипт для создания книжных полок в Reader-е Kobo.

В Linux (Python v3.5.2) все работает хорошо.
В Windows из под debuger PyCharm (в Setting-Project intrpreter установлен 3.5.2) тоже исполняется без ошибок.
Если запускаю вот так (Python v3.5.2):

c:\opt\python35\python.exe KoboShelf.py
то при исполнении выдает ошибку:
        file:///mnt/sd/Books/Метро 2033/Метро-2033 00 Кобелев. Прятки с Солнцем.
file:///mnt/sd/Books/Метро 2033/Метро-2033 47 Буторин Мутант.epub
. . . .
. . . .
file:///mnt/sd/Books/Метро 2033/Метро-2033 44 Киреев Белый барс.epub
file:///mnt/sd/Books/Метро 2033/Метро-2033 04 Дьяков К свету.epub
Traceback (most recent call last):
File "KoboShelf.py", line 198, in <module>
main(sys.argv)
File "KoboShelf.py", line 190, in main
addBook(location, book_path, f_name, c)
File "KoboShelf.py", line 138, in addBook
print('\t%s' % book_full_path)
File "c:\opt\python35\lib\encodings\cp866.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position
Из под Python 3.4 тоже ошибка.

Помогите пожалуйста разобраться.

Отредактировано AxaRu (Сен. 18, 2016 23:47:58)

Офлайн

#2 Сен. 19, 2016 15:28:17

AxaRu
Зарегистрирован: 2015-04-11
Сообщения: 34
Репутация: +  1  -
Профиль   Отправить e-mail  

Непонятки с кодировкой.

На Linux.org.ru мне подсказали, что в Linux консоль работает в utf-8, а в Windows в 1251. Отсюда и разное поведение.

 str='\t%s' % book_full_path
try:
  print(str)
except UnicodeEncodeError:
  print(str.encode('utf-8'))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version