DB2, как указать кодировку соединения с помощью PDO

Я ищу перевод DB2 следующего (и работающего) запроса MySQL:

SET NAMES 'UTF8'

Я подключился к DB2 с помощью PDO_ODBC, и я могу успешно запросить его, так что это не проблема подключения.

Водитель говорит, что NAMES это неожиданный токен, поэтому я предполагаю, что есть другой способ указать кодировку соединения.

Я искал stackoverflow, но большинство ответов касаются драйверов mysql, и я не знаю, что искать в документации IBM (которая не самая удобная для навигации)

Я ищу SQL-запрос, приемлемый для DB2, который имеет тот же эффект, что и MySQL. SET NAMES xxx

0

Решение

Это не эквивалентный оператор в DB2.

Клиентские приложения DB2 запускаются с использованием стандартных настроек локали операционной системы. В UNIX / Linux это устанавливается через LANG переменная окружения (которая может быть переопределена различными LC_* переменные среды), а в Windows это настраивается с помощью панели управления.

В Linux / UNIX с PHP это будет означать, что при запуске вашего веб-сервера вам нужно будет установить правильные переменные среды локали.

Заметки:

  • DB2 предоставляет возможность переопределить любую настройку на уровне операционной системы или среды с помощью DB2CODEPAGE переменная реестра. Этот параметр находится на уровне экземпляра клиента DB2, поэтому он влияет на все / все приложения, которые подключаются с использованием установленного клиента DB2.

  • Если кодовая страница клиентского приложения определяется LOCALE отличается от кодовой страницы базы данных, имейте в виду, что клиент DB2 будет выполнять преобразование кодовой страницы между кодовой страницей клиента и кодовой страницей базы данных в обоих направлениях.

2

Другие решения

Кодировка в DB2 задается при создании базы данных. Чтобы вставить правильные символы в базу данных, необходимо, чтобы приложение выполнялось с правильной кодировкой и поддерживало ее.

0

По вопросам рекламы [email protected]