Основы Юникода

При хранении данных на нескольких языках в одной базе данных возникают неизбежные трудности в управлении, если используются только символьные данные и кодовые страницы. Трудно найти одну кодовую страницу для базы данных, которая могла бы хранить данные на всех необходимых языках. Кроме того, сложно гарантировать правильное преобразование специальных символов при чтении или обновлении данных различными клиентами, использующими разные кодовые страницы. Базы данных, поддерживающие интернациональные клиентские программы, всегда должны вместо обычных использовать типы данных Юникод.

Например, рассмотрим базу данных заказчиков в Северной Америке, в которой будут храниться данные на трех основных языках:

  • испанские имена и адреса для Мексики;

  • французские имена и адреса для Квебека;

  • английские имена и адреса для оставшейся части Канады и Соединенных Штатов.

При использовании только символьных столбцов и кодовых страниц необходимо убедиться, что при установке базы данных была установлена кодовая страница, поддерживающая все три языка. Кроме того, необходимо гарантировать правильное преобразование символов одного языка клиентами, использующими кодовую страницу для другого языка.

С ростом Интернета возможность поддерживать большое количество клиентских компьютеров с разными языковыми стандартами становится все более важной. Выбор кодовой страницы для символьных типов данных, поддерживающей все символы, которые требуются клиентам в различных точках земного шара, является сложной задачей.

Самый простой способ управлять символьными данными в международных базах данных — всегда использовать типы данных Юникода nchar, nvarchar и nvarchar(max) вместо их эквивалентов, отличных от Юникода: char, varchar и text.

Юникод — это стандартный способ сопоставления элементов кода символам. Поскольку он разработан для поддержки всех символов всех языков, различные кодовые страницы для поддержки разных наборов символов больше не требуются. Сервер SQL Server поддерживает стандартные символы Юникода версии 3.2.

Если все приложения, работающие с интернациональными базами данных, также используют переменные Юникода вместо обычных переменных, преобразование символов не требуется. Все клиенты будут видеть одни и те же символы.

Сервер SQL Server хранит все системные текстовые данные каталога в столбцах типа Юникод. Имена таких объектов базы данных, как таблицы, представления и хранимые процедуры, хранятся в столбцах типа Юникод. Благодаря этому при разработке приложений можно использовать только Юникод и избежать проблем, связанных с преобразованием кодовых страниц.