Автор Тема: UnicodeEncodeError: 'ascii' codec can't encode characters  (Прочитано 6709 раз)

citadeldimon

  • Newbie
  • *
  • Сообщений: 3
UnicodeEncodeError: 'ascii' codec can't encode characters
« : Августа 25, 2013, 21:55:24 »
Всем привет!

Что то я совсем запутался с кодировками, интернет не помог. Работаю в Sublime Text 2
Linux katty 3.10.9-1-ARCH #1 SMP PREEMPT Wed Aug 21 13:49:35 CEST 2013 x86_64 GNU/Linux
Создаю файл file.txt в кодировке CP-1251 и добавляю в него пару строк на русском, пишу скрипт
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import codecs

with codecs.open("file.txt", "rb", encoding="windows-1251") as src:
    for line in src:
        print line
и как следствие
Traceback (most recent call last):
  File "/home/dima/python/work_with_file/mycodec1.py", line 11, in <module>
    print line
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
[Finished in 0.0s with exit code 1]
Если запустить скрипт просто в терминале, то все отлично работает. И ошибка присутствует только на кириллицу. Есть идеи?

Спасибо!
« Последнее редактирование: Августа 25, 2013, 21:58:21 от citadeldimon »

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: UnicodeEncodeError: 'ascii' codec can't encode characters
« Ответ #1 : Августа 27, 2013, 13:55:46 »
Слабое утешение, но проблема с, отличными от английских, символами встречается довольно часто. Даже если все в utf-8, ST почему-то не желает ничего делать с кириллицей. Хотя казалось бы...

Тоже попробовал советы с официального форума, не помогло. Если вдруг получится решить проблему, напиши, пожалуйста. Интересно.

citadeldimon

  • Newbie
  • *
  • Сообщений: 3
Re: UnicodeEncodeError: 'ascii' codec can't encode characters
« Ответ #2 : Августа 27, 2013, 19:07:03 »
для меня странно что в линуксе такое наблюдается где на всех уровнях utf-8, в виндовсе с cp-1251 и cp-866 в терминале совсем наверно туго. ???

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: UnicodeEncodeError: 'ascii' codec can't encode characters
« Ответ #3 : Августа 27, 2013, 19:28:15 »
Работаю под Mac OS, в Windows не проверял, но думаю там тоже самое. Сдается мне, это какой-то прикол в ST.

citadeldimon

  • Newbie
  • *
  • Сообщений: 3
Re: UnicodeEncodeError: 'ascii' codec can't encode characters
« Ответ #4 : Августа 27, 2013, 21:07:01 »
есть пару моментов в ST, пока нашел только два  - работа с кодировкой и не восприятие питоновских функций input и raw_input. Но пока плюсы перекрывают.