На хосте POSIX Python определяет выходную кодировку из locale - набор переменных среды, которые сообщают, как среда настроена для различных языковых настроек. См. Функцию locale.getdefaultlocale()
или, более конкретно, функцию locale.getpreferredencoding()
.
Выход этой функции используется для установки sys.stdout.encoding
, который затем используется для кодирования любого напечатанного текста в Юникоде.
Ваш языковой стандарт установлен на POSIX
, а это означает, что кодировка по умолчанию - ASCII. Вам нужно будет настроить этот язык для использования кодировки, поддерживающей все Unicode. Как это сделать для Chromebook, я не знаю. На моем Mac локаль установлена в en_US.UTF-8
, в основном, поэтому весь стандарт Unicode поддерживается моим терминалом. Вы можете заставить проблему установить export LC_CTYPE=en_US.UTF-8
.
Вы можете переопределить выбор Python, установив переменную среды PYTHONIOENCODING
.
Обратите внимание, что на более последние выпуски Python 3, sys.stdout
и sys.stderr
используют обработчик ошибок backslashescape
, который заменяет любой символ, который ваша консоль не может обрабатывать со стандартными \xhh
, \uhhhh
и \Uhhhhhhhh
escape-последовательности; поэтому вместо исключения вы увидите:
Antelope Canyon, Arizona [1600\xd71068] (
Да, это - возможное отражение использования. Определенные цвета определяются как помехи свойства Color struct
.
PropertyInfo[] colors = typeof(Color).GetProperties(BindingFlags.Static|BindingFlags.Public);
foreach(PropertyInfo pi in colors) {
Color c = (Color)pi.GetValue(null, null);
// do something here with the color
}
Вы могли бы также интересоваться этим кодом
http://blog.guymahieu.com/2006/07/11/deep-reflection-of-properties-propertyreflector/
, Он обеспечивает простой способ установить/получить свойства по имени. При изучении GetBestMatchingProperty, Вы найдете повторение по свойствам, которое сделано тот же путь, как отправлено прежде Итерация по свойствам класса