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

_RVK_

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

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

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

P.S. Используется PDO_OCI
 

Adelf

Administrator
Команда форума
Ну на клиенте оракла можно задать настройку NLS_LANG.
Ну или в PHP функция iconv может перекодировать из WIN1251 в UTF8.
 

_RVK_

Новичок
Перекодировать не хочется. Хочется что бы оракл отдавал в нужной кодировке. Насколько я понял, NLS_LANG не меняет кодировку данных а только говорит клиенту в какой они кодировке.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
$dbc = new PDO('oci:dbname=ipaddr/orcl;charset=UTF8', 'username', 'password');
 

_RVK_

Новичок
Так тоже пробовал. Это то же самое что установить переменную окружения 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
 

флоппик

promotor fidei
Команда форума
Партнер клуба
и? кодировка то сменилась, раз у тебя данные больше обьемом встали. А что и куда ты фетчишь такое большое - это вопрос номер два
 

_RVK_

Новичок
я думаю не кодировка сменилась а PDO думает что сменилась.

-~{}~ 13.08.09 16:41:

А что и куда ты фетчишь такое большое - это вопрос номер два
Ничего там большого нет. Таблица 2 записи с четырмя полями. Нет даже BLOB, только NUMBER и VARCHAR2
 

Adelf

Administrator
Команда форума
а уверены что с NLS_LANG не выйдет?
NLS_LANG = RUSSIAN_CIS.AL32UTF8 не пробовали?
 

Adelf

Administrator
Команда форума
для тесту я бы законнектился с помощью oci. Проверить. Ошибка не говорит о том, что ничего не получилось.
 

_RVK_

Новичок
для тесту я бы законнектился с помощью oci. Проверить. Ошибка не говорит о том, что ничего не получилось.
Удивительно, но черз OCI все работает верно. Значит это ошибка PDO?
 

Adelf

Administrator
Команда форума
Ну наверно... Так навскидку мало что можно сказать.
 
Сверху