Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / PHP+DB2 на Linux = Проблема с кодировкой / 4 сообщений из 4, страница 1 из 1
02.08.2010, 19:15
    #36771754
OlegA67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+DB2 на Linux = Проблема с кодировкой
Добрый день.
Имеется сервер DB2 WSE 8,2 установленый на Linux RHE. На нем создана база с параметром
Код: plaintext
USING CODESET  1251 
. Обращение к базе тдет через библиотеку php_ibm_db2.dll.
При выводе данных полученых из базы выводятся кракозябры. В принципе проблему можно решить через функцию
Код: plaintext
iconv("KOI8-U", "CP1251", $sss);
Но проблема в том, что часть кода я делаю на домашнем компе, где Apache, PHP и DB2 развернуты под виндой.
Как добиться от сервака под Линуксом получение данных в нормальной кодировке
не использую функцию iconv?
...
Рейтинг: 0 / 0
03.08.2010, 06:47
    #36772148
jack_nsk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+DB2 на Linux = Проблема с кодировкой
OlegA67Добрый день.
Имеется сервер DB2 WSE 8,2 установленый на Linux RHE. На нем создана база с параметром
Код: plaintext
USING CODESET  1251 
. Обращение к базе тдет через библиотеку php_ibm_db2.dll.
При выводе данных полученых из базы выводятся кракозябры. В принципе проблему можно решить через функцию
Код: plaintext
iconv("KOI8-U", "CP1251", $sss);
Но проблема в том, что часть кода я делаю на домашнем компе, где Apache, PHP и DB2 развернуты под виндой.
Как добиться от сервака под Линуксом получение данных в нормальной кодировке
не использую функцию iconv?

какая локаль стоит на линуховом компе ?
и iconv какая-то кривоватая функция...
лучше воспользоваться
convert_cyr_string($my_var,'w','k')
правда функция корретна вероятно только для koi8-r, с KOI8-U ни разу не сталкивался
...
Рейтинг: 0 / 0
03.08.2010, 08:14
    #36772177
OlegA67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP+DB2 на Linux = Проблема с кодировкой
jack_nsk
какая локаль стоит на линуховом компе ?

а где это посмотреть? администратора данного сервака сейчас нет. Но для того чтобы нормально отражались файлы через mc, я как раз и выставляю в настройках PuTTY KOI8-U
...
Рейтинг: 0 / 0
03.08.2010, 15:33
    #36773199
PHP+DB2 на Linux = Проблема с кодировкой
OlegA67,

Кодировка самой БД не принципиальна.
Код клиента умеет преобразовывать данные из кодировки СУБД в кодировку клиента, если кодировки являются совместимыми (несовместимые - это разных языковых групп).
На платформе Linux текущая кодовая страница определяется из значения переменной LANG.
Клиент может выставить любое значение LANG, которое:
- поддерживается операционной системой.
- поддерживается клиентом DB2.
- совместимо с кодовой страницей базы DB2.
Список локализаций, которые поддерживает db2 версии 8.2 здесь Supported territory codes and code pages

Попробуйте выдать следующую последовательность команд (из под владельца инстанса например):
Предполагаем, что создана база данных TEST с CODESET 1251 и таблица TEST с русскими текстовыми данными.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
export LANG=ru_RU.UTF- 8 
db2 terminate
db2 connect to TEST
db2 "select * from test" > result_utf8.txt
db2 disconnect test
export LANG=ru_RU.KOI8-R
db2 terminate
db2 connect to TEST
db2 "select * from test" > result_koi8r.txt
db2 disconnect test
export LANG=ru_RU.ISO8859- 5 
db2 terminate
db2 connect to TEST
db2 "select * from test" > result_iso88595.txt
db2 disconnect test
В результате данные в файлах будут в соответствующей кодировке.
Это все для понимания как это работает.

Собственно совет: правильно выставить LANG для среды, в которой работает PHP, и, если он работает как CGI, не забыть передать эту переменную в CGI.
Как посмотреть какие переменные окружения переданы в PHP: Getenv () PHP Function и Getting More Information From PHP
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / PHP+DB2 на Linux = Проблема с кодировкой / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]