Проблема в том, что вы пытаетесь напечатать символ юникода, но ваш терминал не поддерживает его.
Вы можете попробовать установить пакет language-pack-en
, чтобы исправить это:
sudo apt-get install language-pack-en
, который обеспечивает обновление данных перевода на английском языке для всех поддерживаемых пакетов (включая Python). При необходимости установите другой языковой пакет (в зависимости от того, какие символы вы пытаетесь распечатать).
В некоторых дистрибутивах Linux это необходимо, чтобы убедиться, что локальные английские локали установлены правильно (так что символы Unicode может обрабатываться оболочкой / терминалом). Иногда его проще установить, чем настраивать вручную.
Затем при написании кода убедитесь, что вы используете правильную кодировку в своем коде.
Например:
open(foo, encoding='utf-8')
Если у вас все еще есть проблема, дважды проверьте конфигурацию вашей системы, например:
/etc/default/locale
), который должен иметь, например, LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LANG
/ LC_CTYPE
в оболочке. locale -a | grep "UTF-8"
Демонстрация проблемы и решения в новой виртуальной машине.
vagrant
): vagrant init ubuntu/trusty64; vagrant up; vagrant ssh
Смотрите: доступные ящики Ubuntu .. ™
): $ python -c 'print(u"\u2122");'
Traceback (most recent call last):
File "", line 1, in
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2122' in position 0: ordinal not in range(128)
language-pack-en
: $ sudo apt-get -y install language-pack-en
The following extra packages will be installed:
language-pack-en-base
Generating locales...
en_GB.UTF-8... /usr/sbin/locale-gen: done
Generation complete.
$ python -c 'print(u"\u2122");'
™
PowerShell принципиально нечувствителен к регистру (например, "HEy" -like "hey"
- True
).
Если вы хотите использовать регистрозависимую версию like
, используйте -clike
.
По умолчанию чувствительность к регистру отключена:
PS> 'test','TEST','TeSt','notest' | ? { $_ -like 'test' }
test
TEST
TeSt
Из документации:
По умолчанию все операторы сравнения не чувствительны к регистру. Чтобы сделать оператор сравнения чувствительным к регистру, перед именем оператора поставьте
"c"
. Например, чувствительная к регистру"-eq"
является"-ceq"
. Чтобы сделать нечувствительность к регистру в явном виде, перед оператором ставится символ"i"
. Для например, явно версия"-eq"
, не чувствительная к регистру, имеет вид"-ieq"
.
Для получения дополнительной информации запустите help about_comparison_operators