Описание хранения данных в кодировке UTF-8 в SQL Server

Переводы статьи Переводы статьи
Код статьи: 232580 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

Некоторые приложения (особенно тех, которые являются веб) приходится иметь дело с данными в Юникоде, закодированные с помощью метода кодировки UTF-8. SQL Server 7.0 и SQL Server 2000 используйте другую кодировку Юникод (UCS-2) и распознает допустимых символов UTF-8. В этой статье обсуждаются некоторые возможности в этом случае.

Дополнительная информация

Данные Юникод могут быть кодированы различными способами. UCS-2 и UTF-8, два стандартных способа хранения битовые шаблоны, представляющие символы Юникода. Microsoft Windows NT, SQL Server, Java, COM и драйвер ODBC для SQL Server и поставщик OLEDB для всех внутренних представляют данные в Юникоде как UCS-2.

Параметры для использования SQL Server 7.0 или SQL Server 2000 как сервер базы данных для приложения, которое отправляет и получает данные в кодировке Юникод, в кодировке UTF-8:
  1. Если приложение использует Active Server Pages (ASP) и с помощью Internet Information Server (IIS) версии 5.0 и Windows 2000, можно добавить сценарий ASP на сервере «< % Session.Codepage=65001% >». Это указывает, что службы IIS для преобразования всех динамически создаваемых строк (пример: Response.Write) из UCS-2, UTF-8, автоматически перед их отправкой клиенту.

    Если не хотите включить сеансы, также можно использовать директиву на сервере "< % @ CodePage = 65001% >".

    Все данные UTF-8, отправляемых от клиента к серверу через GET или POST также преобразуются в UCS-2 автоматически. Свойство Session.Codepage является рекомендуемым методом для обработки данных UTF-8 в рамках веб-приложения. Этот параметр кодовая страница недоступна на сервере IIS 4.0 и Windows NT 4.0. Для получения дополнительных сведений обратитесь к следующей статье Microsoft Knowledge Base:
    254313 Появляется сообщение об ошибке Ошибка страницы активного сервера «ASP 0203» недопустимый код
  2. Перевод в и из UCS-2 или UTF-8 соответственно в приложении. Пример кода для преобразования такого типа расположен на веб-узел консорциума Юникода:

    FTP://FTP.Unicode.org/Public/PROGRAMS/CVTUTF/
    Подробное описание алгоритма для преобразования UCS-2 в кодировке UTF-8 можно найти в документе Request Интернета для комментариев RFC2279.

    В Windows NT или Windows 2000 можно использовать функции Win32 MultiByteToWideChar и WideCharToMultiByte для преобразования UTF-8 в UCS-2, передав константой CP_UTF8 (65001) как первый параметр функции.
  3. Изменение приложения для использования UCS-2 вместо кодировки UTF-8.
  4. Хранить на сервере, используя столбцы VARBINARY-двоичный ФАЙЛ-образ фактические данные UTF-8. Хранение данных в кодировке UTF-8 на SQL Server означает, что SQL Server нельзя использовать для сортировки и поиска диапазонов значений, таких как, если данные были допустимыми символьных данных. Типы операций на столбцы, содержащие данные UTF-8, который не возвращал ожидаемые результаты включают "ORDER BY», больше-чем" > "и меньше-чем"<" comparisons,="" and="" the="" built-in="" sql="" server="" string="" manipulation="" functions="" such="" as=""></">

    Однако сравнения на равенство, будет работать до тех пор, пока на уровне байтов сравниваемые строки эквивалентны. Обратите внимание, что при хранении данных в кодировке UTF-8 в SQL Server не следует использовать, символьных столбцов (CHAR, NCHAR/VARCHAR и т. д.). UTF-8 не является допустимым символом данных для SQL Server, а также путем хранения несимвольных данных в символьных столбцов, существует риск при возникновении проблем, таких как вопросы, описанные в следующих статьях базы знаний Майкрософт:
    155723 INF: SQL Server усечение строкового DBCS
    234748 PRB: Драйвер ODBC для SQL Server преобразует события языка в Юникод
    Если вы собираетесь этого параметра следует помнить, что при необходимости доступа к данным UTF-8, хранящиеся в SQL Server из любого приложения, отличного от веб-обозревателя (например, из приложения ODBC веб интерфейсом) требуется для выполнения преобразования из UTF-8 в UCS-2 в рамках этого приложения ODBC, OLEDB, COM, вызовы Win32 API, VB и времени выполнения c строками функции не работают с данными UTF-8. Оно перемещает бремя перевод в другое приложение.
  5. Если требования к не нужно хранить данные на основе сочетания языков, которые не могут быть удовлетворены одной кодовой страницы, не требуется использовать Юникод.
Поддержка Юникода была введена в SQL Server, начиная с SQL Server 7.0. Поскольку SQL Server 6.5 не поддерживает хранение данных в формате Юникод, параметры только для SQL Server 6.5 описаны в шаги 4 и 5.

Свойства

Код статьи: 232580 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Ключевые слова: 
kbinfo kbmt KB232580 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:232580

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com