Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-04-29

Python print unicode string

Питонисты, сколько раз вы наблюдали сообщения типа
UnicodeEncodeError: 'ascii' codec can't encode characters in position
пытаясь просто распечатать текст в консоль, типа
print u"это строка в юникоде"
Если многократно, как я, то это значит, что нынче нам можно вздохнуть с облегчением. С версии 2.6 Python поддерживает переменную среды
PYTHONIOENCODING
с помощью которой можно задать не опостылевшую ascii содировку по умолчанию, а ту, что надо. Для линуксов это любезная UTF-8.

Короче, вот код на Python (допустим, в файле test.py), который вызывает ошибку, печатая Unicode в консоль:
#!/usr/bin/env python
# -*- mode: python; coding: utf-8 -*-
print u"это строка в юникоде"
Чтобы этот код отработал без ошибок, примените сниппет из bash скрипта.

Скрипт для запуска этого кода с установленной правильной кодировкой ввода/вывода:
#!/usr/bin/env bash
export PYTHONIOENCODING=UTF-8
python -u test.py


Бобер, выдыхай. Больше не надо извратов с перекодировками при выводе в консоль — достаточно установить переменную и принять за правило, что весь текст должен быть в юникоде.


original post http://vasnake.blogspot.com/2014/04/python-print-unicode-string.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)