powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / PHP под линукс и каше
13 сообщений из 13, страница 1 из 1
PHP под линукс и каше
    #36533939
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHP 5.2.6 (UTF8)
Linux 2.6.26-2-68 (вроде Debian)
ODBC драйвер каше под линус
Каше сервер под виндовс

Наши специалисты не могут подружить, при передаче в PHP
непонятная кодировка, причем через раз разная.
Это вообще возможно их подружить? Какие грабли?
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #36533990
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... недавно пришлось с этим биться. Вот пара "заметок на полях":

Установка локали CP1251
Надо сказать, что результирующий набор, возвращаемый Cache ODBC, всегда в кодировке CP1251 (вне зависимости от 8-битности экземпляра Cache). По крайней мере, я не знаю как это изменить (да и надо ли?). Поэтому надо установить в Linux соответствующую локаль. Например, в Ubuntu 9.10 это делается так:

sudo locale-gen ru_RU.CP1251
locale -a | grep 1251

в списке локалей появятся:

ru_RU.cp1251

В RedHat-подобных дистрибутивах (проверено в FC 8, CentOS 5.x) локаль устанавливается так:

sudo localedef --no-archive -c -f CP1251 -i ru_RU ru_RU.CP1251

Проверка наличия ru_RU.cp1251 выполняется аналогично:

locale -a | grep 1251

...
Если вы захотите попробовать что-нибудь русское (ну и собственно приступить к разработке :), не забывайте вставить поближе к началу php-кода установку текущей локали CP1251:

echo setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #36537344
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, наши вроде разобрались :-)
Там еще ошибка интересная, что если получаемая строка длиннее чем ее декларация, то все что дальше - заменяется непойми чем.
А так как длина %String по умолчанию равна 50 то с учетом перекодировки в UTF8 реальная длина передаваемой строки получалась 25-50.
Решили тем, что поставили MAXLEN побольше, вроде работает.
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #36537379
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На эти грабли и у нас наступили. Наверное, на них наступают все, кто начинает работать с Cache ODBC :)
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #36537395
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с учетом перекодировки в UTF8 Вы научились отдавать ResultSet в UTF-8? Я не нашел, как это сделать, кроме тупого варианта - написать Custom Query и закодировать все самому.
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #36537440
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне показалось, это у них по умолчанию получилось, хотя никаких настроек кодировки в ODBC-драйвере не было.

Хотя я сам этим не занимался, переспрошу, как было дело.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
PHP под линукс и каше
    #37212573
NT Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н. , Вы всех заинтриговали, а сами не рассказываете как получать из каше UTF-8 напрямую.
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #37212780
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как у нас проблемы были не с самой кодировкой, а с обрезкой строк.
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #37212810
NT Man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Вроде как у нас проблемы были не с самой кодировкой, а с обрезкой строк.
Какими настройками добились получения utf-8? или iconv захардкодили?
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #37212815
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, как для сервера utf-8 была родной кодировкой, вот в ней оно и работало :-)
Я перешлю ссылку разработчику, который этим занимался, может ответит.
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #37213276
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторУ сервера родная кодировка utf-8, после вызова функции odbc_connect вызывается функция setlocale(LC_ALL, 'ru_RU.UTF-8 '); и далее данные из запросов приходят в utf-8
у нас так и для select и для insert работает. от нас везде все в utf а конвертация идет уже по пути в вашу базу данных
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #37276601
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все просто
В cache в OnPage() генерим xml файл вида
w "<?xml version='1.0' encoding='utf-8'?>",!
w $zcvt($zcvt("Мой текст","O","UTF8"),"O","HTML") ; исходный текст в win1251

Не забываем ContentType="text/xml"
...
Рейтинг: 0 / 0
PHP под линукс и каше
    #37276606
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В PHP загружаем например так

$xml = @simplexml_load_file($urlpath .'Page.class.cls?CSPCHD='.$sessionCSP.'&id='.$id);
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / PHP под линукс и каше
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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