Проблемы с набором символов в SQL Server 2000 - PullRequest
0 голосов
/ 11 апреля 2011

Еще раз с проблемами кодировки при разговоре с БД:)

У меня есть две среды, в которых работает Zend Server.Бот из них общается с SQL Server 2000, используя расширение mssql.Ни один из них не имеет значения, заданного для кодировки в настройках расширения.Для одного он работает, а для другого он возвращает данные в неправильной кодировке.

Проблема стала заметной, когда эти данные были вставлены в базу данных MySQL, и они закричали с SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF6m' for column 'cust_lastname' at row 1.

Я пытался использовать SET NAMES utf8, чтобы заставить соединение SQL Server возвращать правильные данные, но он жалуется и говорит, что NAMES is not a recognized SET statement.Оглядываясь вокруг, большинство людей даже рекомендуют использовать это, но, похоже, оно не является частью SQL Server 2000:)

Итак, что мне делать?Как мне, БЕЗ возиться с базой данных / таблицами SQL Server, сказать ему, чтобы он отправлял мне данные в кодированном UTF-8 формате?

РЕДАКТИРОВАТЬ:

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

  • SQL Server использует сопоставление Finnish_Swedish_CI_AS
  • MySQL имеет каждую таблицу в формате UTF-8 и использует utf8_unicode_ci

1 Ответ

0 голосов
/ 24 мая 2011

Я не нашел хорошего решения и в итоге конвертировал в и из utf8 в своем приложении.Если это инкапсулировано в классе, это не загадывает код.Но способ на самом деле сказать серверу SQL, какую кодировку использовать во время связи, было бы лучше.

...