Я только что столкнулся с несколькими ошибками юникода в приложении, которое я запускаю, которое время от времени приходится иметь дело с действительно странными строками, совсем недавно,
Pınar Karsıyaka
в моей среде разработки (Aptana с PyDev на Mavericks Mac с последней установкой homebrew python) обработка этой строки не приводит к ошибке и выводится на консоль как
P\u0131nar Kars\u0131yaka v Torku Selcuk
но в производственной среде стандартные Ubuntu и Python устанавливаются на маленькую коробку Amazon EC2, это печатается как
P\xc4\xb1nar Kars\xc4\xb1yaka v Torku Selcuk
и выдает одну из ужасных ошибок Python,
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0131' in position 50: ordinal not in range(128)
Я хотел бы знать, как (если возможно) сделать так, чтобы рабочая среда могла работать с этими персонажами, как моя среда разработки, но также хотела бы иметь возможность изменить мою среду разработки, чтобы она ломалась, как рабочая, поэтому что я могу обрабатывать случаи, когда это происходит в коде.
Спасибо за любую помощь в этом отношении.
Mac Python — Python 2.7.5 (по умолчанию, 1 ноября 2013 г., 18:38:34) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] на darwin
Ubuntu Python — Python 2.7.3 (по умолчанию, 10 апреля 2013 г., 06:20:15) [GCC 4.6.3] на linux2
echo $LC_ALL
для каждого. - person Two-Bit Alchemist   schedule 28.03.2014$LANG
или$LC_CTYPE
? Кроме того, вы запускаете программу Mac Terminal дома, но получаете доступ к своему блоку EC2 с помощью чего-то вроде ssh? - person Two-Bit Alchemist   schedule 28.03.2014# -*- coding: utf-8 -*-
в начале файла? IIRC, UTF-8 стал по умолчанию в Py3K. Вы сделали это с файлами, по крайней мере, на вашем ящике EC2? (Лучше, если это будет в обоих местах.) - person Two-Bit Alchemist   schedule 28.03.2014UnicodeEncodeError
. - person Blckknght   schedule 24.04.2014