Поделиться через


Дополнительные символы

Строки nchar и nvarchar хранят каждый символ как 16-разрядное значение в кодировке UCS-2. Эта кодировка, определенная версиями Юникода до 1996, поддерживает символы в диапазоне от U+0000 до U+FFFF. В более новых версиях Юникода были определены добавочные символы в диапазоне от U+10000 до U+10FFFF, называемые дополнительными символами. Эти символы хранятся как пары 16-разрядных значений, называемые суррогатными парами, в кодировке UTF-16. Все новые параметры сортировки уровня 100 поддерживают лингвистическую сортировку при использовании дополнительных символов.

На использование дополнительных символов налагаются следующие ограничения.

  • Они могут применяться в операциях сортировки и сравнения только в параметрах сортировки версии 90 или более новых.

  • Поскольку дополнительные символы хранятся в виде двух 16-разрядных значений, функция LEN() возвращает значение 2 для каждого из дополнительных символов, содержащихся в строке аргумента. Аналогично функции CHARINDEX и PATINDEX неправильно представляют дополнительные символы, появляющиеся в строках символов.

  • Функции LEFT, RIGHT, SUBSTRING, STUFF и REVERSE могут разорвать любые суррогатные пары, что может привести к непредвиденным результатам.

  • Не поддерживается применение дополнительных символов с символами-шаблонами подчеркиванием (_), процентом (%) и символом крышки (^).

  • Они также не поддерживаются в метаданных, например в именах объектов базы данных.

См. также

Основные понятия

Другие ресурсы