получение данных в нужной кодировке

  • Автор темы Автор темы _RVK_
  • Дата начала Дата начала

_RVK_

Новичок
получение данных в нужной кодировке

Имеется база в CL8MSWIN1251. Изменить кодировку нет возможности. Но получать данные нужно в UTF8

Можно ли как нибудь это сделать?

P.S. Используется PDO_OCI
 
Ну на клиенте оракла можно задать настройку NLS_LANG.
Ну или в PHP функция iconv может перекодировать из WIN1251 в UTF8.
 
Перекодировать не хочется. Хочется что бы оракл отдавал в нужной кодировке. Насколько я понял, NLS_LANG не меняет кодировку данных а только говорит клиенту в какой они кодировке.
 
$dbc = new PDO('oci:dbname=ipaddr/orcl;charset=UTF8', 'username', 'password');
 
Так тоже пробовал. Это то же самое что установить переменную окружения NLS_LANG
при этом PDO вылетает с ошибкой PDOStatement::fetchAll() [<a href='pdostatement.fetchall'>pdostatement.fetchall</a>]: column 2 data was too large for buffer and was truncated to fit it
 
и? кодировка то сменилась, раз у тебя данные больше обьемом встали. А что и куда ты фетчишь такое большое - это вопрос номер два
 
я думаю не кодировка сменилась а PDO думает что сменилась.

-~{}~ 13.08.09 16:41:

А что и куда ты фетчишь такое большое - это вопрос номер два
Ничего там большого нет. Таблица 2 записи с четырмя полями. Нет даже BLOB, только NUMBER и VARCHAR2
 
а уверены что с NLS_LANG не выйдет?
NLS_LANG = RUSSIAN_CIS.AL32UTF8 не пробовали?
 
для тесту я бы законнектился с помощью oci. Проверить. Ошибка не говорит о том, что ничего не получилось.
 
для тесту я бы законнектился с помощью oci. Проверить. Ошибка не говорит о том, что ничего не получилось.
Удивительно, но черз OCI все работает верно. Значит это ошибка PDO?
 
Ну наверно... Так навскидку мало что можно сказать.
 
Сверху