Обеспечение правильной перекодировки из ANSI в Юникод
Если экземпляр Microsoft SQL Server, с которым устанавливается соединение, содержит данные в кодировке ANSI, то перед сохранением их в базе данных Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) выполняется преобразование данных в Юникод. В зависимости от кодовых страниц на компьютере, где установлен SQL Server, и на компьютере, где установлены службы IIS, при перекодировке могут возникать ошибки. Приведенные в разделе сведения помогут обеспечить правильное преобразование данных.
Перекодировка из ANSI в Юникод в агенте сервера SQL Server Compact Edition
Агент сервера SQL Server Compact Edition, установленный на том же компьютере, что и Microsoft Internet Information Services (IIS), преобразует данные в кодировке ANSI, содержащиеся в SQL Server, в Юникод (или наоборот) для сохранения в базе данных SQL Server Compact Edition. Для обеспечения правильной перекодировки агент сервера SQL Server Compact Edition перед выполнением преобразования из ANSI в Юникод определяет, в какой кодовой странице хранятся данные в кодировке ANSI. При этом учитываются следующие сведения.
- При отсутствии других параметров настройки используется кодовая страница ANSI компьютера, на котором установлены службы IIS.
- Если используется экземпляр SQL Server 2005 или SQL Server 2000, агент сервера SQL Server Compact Edition использует кодовую страницу компьютера, на котором установлен SQL Server. Если все экземпляры SQL Server настроены для правильного определения сохраняемых данных в кодировке ANSI, то при каждом соединении автоматически выбирается соответствующий способ преобразования.
- Если перекодировка не возвращает правильных значений для сохраняемых данных, то можно переопределить кодовую страницу, указав конкретную страницу в соответствующем разделе реестра.
Создание параметра реестра для переопределения кодовой страницы
Ниже приводится пошаговая инструкция по созданию параметра реестра для переопределения кодовой страницы.
![]() |
---|
Неправильное изменение реестра может привести к серьезным сбоям системы. Перед внесением изменений в реестр необходимо выполнить резервное копирование всех ценных данных на компьютере. |
- Создайте следующий параметр реестра, если он не существует:
HKLM\Software\Microsoft\MSSQLSERVERCE\Transport - Для параметра HKLM\Software\Microsoft\MSSQLSERVERCE\Transport создайте значение типа DWORD. Имя параметра должно начинаться с локального пути, связанного с виртуальным каталогом служб IIS для SQL Server Compact Edition. Например, если файл Sqlcesa30.dll находится в папке C:\Inetpub\Sqlce\, то параметру следует присвоить имя C:\Inetpub\Sqlce\OVERRIDE_SERVER_CP. Значение параметра DWORD должно совпадать со значением кодовой страницы. Например, приведенное ниже значение параметра реестра соответствует английской кодовой странице.
Ключ: HKLM\Software\Microsoft\MSSQLSERVERCE\Transport Значение: C:\Inetpub\Sqlce\OVERRIDE_SERVER_CP 1252 - После создания параметра реестра необходимо перезапустить службы IIS. Это важно, поскольку агент сервера SQL Server Compact Edition считывает параметр реестра, только когда агент сервера SQL Server Compact Edition сначала загружен службами IIS.