Python
Python 2 имеет классы str
и unicode
. str
объекты хранят байты, unicode
объекты хранят символы UTF-16. Большинство библиотечных функций поддерживают оба (например, os.listdir('.')
возвращает список str
, os.listdir(u'.')
возвращает список unicode
объектов). Оба имеют методы encode
и decode
.
Python 3 в основном переименован unicode
в str
. Python 3 эквивалентный str
будет иметь тип bytes
. bytes
имеет метод decode
и str
и encode
. Начиная с Python 3.3 str
объекты внутренне используют одну из нескольких кодировок для экономии памяти. Для программиста на Python он все еще выглядит как абстрактная последовательность Юникода.
Python поддерживает:
- кодирование / декодирование
- нормализация
- простое преобразование регистра и разбиение на пробелы
- поиск персонажей по имени
Python не поддерживает / имеет ограниченную поддержку:
- сопоставление (ограничено)
- Преобразования в особых случаях, когда между символами нижнего и верхнего регистров нет сопоставления 1: 1
- регулярные выражения ( работает )
- сегментация текста
- двунаправленная обработка текста
См. Также: Правда о Юникоде в Python