Я ищу перевод DB2 следующего (и работающего) запроса MySQL:
SET NAMES 'UTF8'
Я подключился к DB2 с помощью PDO_ODBC, и я могу успешно запросить его, так что это не проблема подключения.
Водитель говорит, что NAMES
это неожиданный токен, поэтому я предполагаю, что есть другой способ указать кодировку соединения.
Я искал stackoverflow, но большинство ответов касаются драйверов mysql, и я не знаю, что искать в документации IBM (которая не самая удобная для навигации)
Я ищу SQL-запрос, приемлемый для DB2, который имеет тот же эффект, что и MySQL. SET NAMES xxx
Это не эквивалентный оператор в DB2.
Клиентские приложения DB2 запускаются с использованием стандартных настроек локали операционной системы. В UNIX / Linux это устанавливается через LANG
переменная окружения (которая может быть переопределена различными LC_*
переменные среды), а в Windows это настраивается с помощью панели управления.
В Linux / UNIX с PHP это будет означать, что при запуске вашего веб-сервера вам нужно будет установить правильные переменные среды локали.
Заметки:
DB2 предоставляет возможность переопределить любую настройку на уровне операционной системы или среды с помощью DB2CODEPAGE
переменная реестра. Этот параметр находится на уровне экземпляра клиента DB2, поэтому он влияет на все / все приложения, которые подключаются с использованием установленного клиента DB2.
Если кодовая страница клиентского приложения определяется LOCALE
отличается от кодовой страницы базы данных, имейте в виду, что клиент DB2 будет выполнять преобразование кодовой страницы между кодовой страницей клиента и кодовой страницей базы данных в обоих направлениях.
Кодировка в DB2 задается при создании базы данных. Чтобы вставить правильные символы в базу данных, необходимо, чтобы приложение выполнялось с правильной кодировкой и поддерживало ее.