Будет ли строка UNICODE, содержащая только символы ASCII, всегда равна строке ASCII?

Я заметил следующее:

>>> u'abc' == 'abc' True >>> 'abc' == u'abc' True 

Будет ли это всегда быть верным или может ли оно зависеть от локали системы? (Кажется, строки являются unicode в python 3: например, этот вопрос , но байты в 2.x)

One Solution collect form web for “Будет ли строка UNICODE, содержащая только символы ASCII, всегда равна строке ASCII?”

Python 2 обеспечивает согласование между unicode и str используя кодек ASCII при сравнении двух типов. Так что да, это всегда так.

То есть, если вы не испортите установку Python и не используете sys.setdefaultencoding() чтобы изменить это значение по умолчанию. Вы не можете сделать это нормально, потому что sys.setdefaultencoding() удаляется из модуля во время запуска, но существует Cargo Cult, где люди используют reload(sys) для восстановления этой функции и изменения кодировки по умолчанию что-то еще, чтобы попытаться исправить проблемы неявного кодирования и декодирования. По этой причине это глупо.

  • Использование ввода utf-8 для модуля cmd Python
  • Как писать русские символы в файле?
  • UnicodeEncodeError: кодек «gbk» не может кодировать символ: незаконная многобайтовая последовательность
  • Почему python-cgi выходит из строя в юникоде?
  • django: gettext и принуждение к unicode
  • Как получить имя месяца в юникоде в Python?
  • listdir не печатает неанглийские буквы правильно
  • Как исправить ошибку кодирования при преобразовании списка в формат csv?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.