Работая с Python 2.7, мне интересно, какое реальное преимущество в использовании типа unicode вместо str, поскольку оба они, похоже, могут хранить строки Unicode. Есть ли какая-то особая причина, кроме возможности устанавливать коды unicode строки unicode с помощью escape char \?:
Выполнение модуля с помощью:
# -*- coding: utf-8 -*-
a = 'á'
ua = u'á'
print a, ua
Результаты в: á, á
РЕДАКТИРОВАТЬ:
Больше тестирования с использованием оболочки Python:
>>> a = 'á'
>>> a
'\xc3\xa1'
>>> ua = u'á'
>>> ua
u'\xe1'
>>> ua.encode('utf8')
'\xc3\xa1'
>>> ua.encode('latin1')
'\xe1'
>>> ua
u'\xe1'
Итак, строка unicode, по-видимому, кодируется с использованием latin1 вместо utf-8 а необработанная строка кодируется с помощью utf-8? Я еще больше смущен! : S