Работая с 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