LINUX.ORG.RU

Python, Informix и more


0

0

Есть скрипт на питоне, который работает с информиксом (данные в базе в кодировке iso-8859-5). 
Для отладки сделал вывод сообщений в консоль. Если просто запустить скрипт, то все работает. 
Но так как вывод большой и на экран не умещается, перенаправляю вывод в more или в файл. Получаю следующее:

python db.py | more
Traceback (most recent call last):
  File "db.py", line 169, in ?
    main()
  File "db.py", line 165, in main
    print k, ':', v 
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

Собственно не могу понять, че за фигня?

Система: RHEL 5
Python: 2.4.3

У тебя данные (k или v) в юникоде. Когда просто выводишь на косноль, питон "знает" кодировку консоли и перекодирует неявно. Если ты делаешь перенаправление, знание кодировки пропадает и он обламывается.

Явно перекодируй k и v в нужную кодировку. Положим, тебе нужны выходные данные в cp1251. Тогда: http://dumpz.org/912/

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.