unixODBC + cp1251

Модератор: Модераторы разделов

Аватара пользователя
VAVka
Сообщения: 96

unixODBC + cp1251

Сообщение VAVka »

Не могу заставить isql показывать вместо ??? русские буквы. Не помогает опция -lru_RU.CP1251. Не помогает в locales.conf правка [default]. При этом, tsql из freeTDS работает нормально, сообщая о выборе правльной локали. В чем может быть дело с isql?
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
maxlor
Сообщения: 17

Re: unixODBC + cp1251

Сообщение maxlor »

Опа! Та же проблема тока я использую freetds. Что характерно, при построении запроса в котором иесть названия полей с кириллицей, запрос проходит нормально, а вот ответ в случае если там текст кириллицы, приходит со знакими вопрос.

Кстати, я тоже начал с unixODBC но чтото у меня не заладилось с самого начала,
читал тут..
http://www.botik.ru/~rldp/mysql/myodbc/progman.htm и тут
http://citforum.ru/database/mysql/odbc/unixodbc.shtml

решил попробовать поставить freetds, во второй статье есть упоминание об freetds, но как то смешано в статье, я не понял, эти две зверюги могут жить друг без друга? Это отдельные продукты, или freetds надстройка к unixODBC, что то у меня каша в голове после этой статьи на citforum.ru

Одним словом freetds сразу ожил, это меня порадовало, теперь пытаюсь решить вопрос локализацией. А как у тебя с freetds решилось.

Если удобно, то можно мылом, (e-mail:mlorin@mail.ru) конечно если есть интерес. Но на текущий момент, это для меня большая проблема. Мне надо читать и писать в таблицы, а тут опс, такая бяка.

Установлена Slackware 10.1 все делаю в основном в консоли графический интерфейс мне ни к чему.

С уважением..
Slackware 10.1, AMD-500, mem 96
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: unixODBC + cp1251

Сообщение VAVka »

(maxlor @ Среда, 01 Июня 2005, 19:33) писал(а):Опа! Та же проблема тока я использую freetds. Что характерно, при построении запроса в котором иесть названия полей с кириллицей, запрос проходит нормально, а вот ответ в случае если там текст кириллицы, приходит со знакими вопрос.

Интересное кино... У меня как раз с freeTDS нормально. Могу подсказать, что проблема козявок двухсторонняя: должен быть установлен правильный collation в БД с одной стороны и соответствующая локаль в клиентском приложении с другой. Например, у меня: БД - Cyrillic_General_CI_AS; система - ru_RU.CP1251. При старте tsql по-умолчанию подхватывает системную локаль, о чем сообщает:
locale is "ru_RU.CP1251"
locale charset is "CP1251"
Посмотри, нет ли расхождений здесь с кодировкой БД. Если есть, пробуй править /etc/locales.conf. Там есть секция: [default], выставь в ней значения, которые соответствуют твоей нужной локали. Если уж и это не поможет, то самый брутальный вариант, это изменение сырцов tsql.с и пересборка приложения (замечу, не обязательно пересобирать полностью freeTDS, достаточно только tsql). В tsql.c есть место (строка 288):

Код: Выделить всё

setlocale(LC_ALL, "");
// во втором аргументе попробуй поставить нужную локаль

Если справишся, черкни сюда. Вопросы возникнут - тоже пиши, мне самому интересна эта проблема.

... я не понял, эти две зверюги могут жить друг без друга? Это отдельные продукты, или freetds надстройка к unixODBC...

unixODBC - это нижний уровень, т.н. общий интерфейс для работы с различными СУБД. FreeTDS - это конкретный драйвер для работы по протоколу TDS, который поддерживает как Sybase'овские СУБД, так и MS SQL (поскольку он основан на sybase). Соответственно, freeTDS - это "надстройка" над ODBC.
По поводу, может ли работать freeTDS без ODBC: по общей логике, не должен. Но если уж хочется точный ответ, проверить можно просто: установи только treeTDS, без ODBC и попробуй поработать с tsql.

А как у тебя с freetds решилось.

Да нормально решилось, вроде... Проблема у меня с isql (это почти тоже самое, что tsql, тока помощнее). Хотя, после всех мучений, начинаю грешить на версию протокола freeTDS, который определяется при сборке.

Установлена Slackware 10.1 все делаю в основном в консоли графический интерфейс мне ни к чему.

А мне надо гуи. Ой, как надо...
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
maxlor
Сообщения: 17

Re: unixODBC + cp1251

Сообщение maxlor »

Вчера некогда было, но твой пост прочитал, и так сказать осознавал его! :)

(VAVka @ Четверг, 02 Июня 2005, 2:03) писал(а):Интересное кино... У меня как раз с freeTDS нормально. Могу подсказать, что проблема козявок двухсторонняя: должен быть установлен правильный collation в БД с одной стороны и соответствующая локаль в клиентском приложении с другой. Например, у меня: БД - Cyrillic_General_CI_AS; система - ru_RU.CP1251. При старте tsql по-умолчанию подхватывает системную локаль, о чем сообщает:
locale is "ru_RU.CP1251"
locale charset is "CP1251"
Посмотри, нет ли расхождений здесь с кодировкой БД. Если есть, пробуй править /etc/locales.conf. Там есть секция: [default], выставь в ней значения, которые соответствуют твоей нужной локали. Если уж  и это не поможет, то самый брутальный вариант, это изменение сырцов tsql.с и пересборка приложения (замечу, не обязательно пересобирать полностью freeTDS, достаточно только tsql). В tsql.c есть место (строка 288):


Да, думаю, тут собака порылась. Я полный чайник в линуксе, поэтому настраивал локаль так, как везде написано, а везде настраивают с использованием кои8-р, теперь буду перенастраивать. Посмотрим что получится. Так как я в основном сижу в консоли, то настройки производил путем изменения трех файлов,
/etc/rc.d/rc.font
/etc/profile.d/lang.sh
/etc/rc.d/rc.local
Терь буду искать инструкцию, как перейти на cp1251.

/etc/locales.conf у меня нет, у меня slackware, может в разных дистрибутивах это по разному?

unixODBC - это нижний уровень, т.н. общий интерфейс для работы с различными СУБД. FreeTDS - это конкретный драйвер для работы по протоколу TDS, который поддерживает как Sybase'овские СУБД, так и MS SQL (поскольку он основан на sybase). Соответственно, freeTDS - это "надстройка" над ODBC.
По поводу, может ли работать freeTDS без ODBC: по общей логике, не должен. Но если уж хочется точный ответ, проверить можно просто: установи только treeTDS, без ODBC и попробуй поработать с tsql.

По всей видимости так и есть. Я сейчас уже не помню, порядок установки, я кажется начал с freetds, у меня не пошло, я установил unixODBC, там isql не заработал, я вернулся к freetds, поковырялся с настройками, tsql заработал, правда с теми глюками, что я писал ранее. Может он и заработат потому, что я установил unixODBC.

Да нормально решилось, вроде... Проблема у меня с isql (это почти тоже самое, что tsql, тока помощнее). Хотя, после всех мучений, начинаю грешить на версию протокола freeTDS, который определяется при сборке.


У меня наверно все проще, чем у тебя, я читал, что у тебя MSSQL и MySQL и все такое..

Мне надо сделать селект из MSSQL на основании этого селекта сделать запрос к внешнему девайсу, получить от девайса ответ, и сделать инсерт полученных данных туда же в MSSQL. Думаю, что все это можно сделать на си. Ну по крайней мере, пока так планирую, не знаю как получится!:) Если tsql заработает корректно, то sql-выражения можно будет прямо из кода выполнять. Вобщем как то так.

Что касается проверки, будет ли работать freetds сам без unixODBC пока лениво пробовать, это надо ось переустанавливать, чтоб как бы с нуля все ставить. Снести unixODBC пока не знаю как, как пакет он не видим. А так я еще новичек в линухе.

Спасибо за участие..

С уважением..




maxlor добавил в 03.06.2005 16:51

Посмотри, нет ли расхождений здесь с кодировкой БД. Если есть, пробуй править /etc/locales.conf. Там есть секция: [default], выставь в ней значения, которые соответствуют твоей нужной локали.

Конечно есть расхождение. У меня все в koi8-r.

/etc/locales.conf у меня нет, у меня slackware, может в разных дистрибутивах это по разному?


Может ты имел ввиду /usr/locale/etc тут у меня лежат все настроечные файлы.
freetds.conf
locales.conf
odbc.ini
odbcinst.ini

А кстати, кинь сюда эту секцию [default] я ее не правил, я по примеру остальных просто добавил секцию в самом низу
[ru_RU]
dateformat = %d/%m/%Y %H:%M
language = Russian
char set = cp1251

может я не прав, это надо в секцию [default]?

Кстати, я вообще odbc.ini и odbcinst.ini не правил и не настраивал, может поэтому уменя isql ругается. А что у тебя в этих файлах? Ща доку порою про это1:) Ну freetds у меня заработал, я как бы и забил на эти файлы!

Кстати, в моем случае, наверно из кода можно устанавлиавать locale прежде чем выполнять sql-операторы обращаясь к MSSQL-ю. Это так размышления.. И это наверно правильнее , мало ли где будет работать приблуда, клиентская часть сама будет устанавливать необходимый locale для себя не меняя глобальных установок.

С уважением..

maxlor добавил в 03.06.2005 17:42

Кстати, есть еще один продукт от Easysoft http://www.easysoft.com/ Не смотрел его, но кажется он коммерческий, я с лицензией не разбирался.

С уважением..
Slackware 10.1, AMD-500, mem 96
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: unixODBC + cp1251

Сообщение VAVka »

(maxlor @ Пятница, 03 Июня 2005, 22:42) писал(а):Да, думаю, тут собака порылась. Я полный чайник в линуксе, поэтому настраивал локаль так, как везде написано, а везде настраивают с использованием кои8-р, теперь буду перенастраивать. Посмотрим что получится. Так как я в основном сижу в консоли, то настройки производил путем изменения трех файлов,
/etc/rc.d/rc.font
/etc/profile.d/lang.sh
/etc/rc.d/rc.local
Терь буду искать инструкцию, как перейти на cp1251.

Стоп. Ничего искать не надо. По крайней мере, для нормальной работы freeTDS.
Оказалось, что все дело в одной единственной гребаной строчке в freetds.conf:
client charset = CP1251
Вместо СР1251 укажи свою. Это действие заставит говорить нормально ВСЕ приложения, которые используют unixODBC и freeDTS.
Навсякий случай, прилаживаю текстовичек с описанием моих конфигов freetds.conf, .odbc.ini и odbcinst.ini (см. аттачмент). Изучай.

/etc/locales.conf у меня нет, у меня slackware, может в разных дистрибутивах это по разному?

Этот файл из комплекта freeTDS и от дистра не зависит. У меня он лежит в /etc поскольку при сборке указал --sysconfdir=/etc. У тебя он скорее всего находится в /usr/local/etc, если ты ничего не менял на этапе конфигурирования.

По всей видимости так и есть. Я сейчас уже не помню, порядок установки, я кажется начал с freetds, у меня не пошло, я установил unixODBC, там isql не заработал, я вернулся к freetds, поковырялся с настройками, tsql заработал, правда с теми глюками, что я писал ранее. Может он и заработат потому, что я установил unixODBC.

С пополненными знаниями относительно unixODBC и FreeTDS, могу сказать, что freeTDS сам по себе (без unixODBC) работать БУДЕТ (!!!), поскольку этот драйвер сам является интерфейсом для протокола TDS. Поэтому, если ты хочешь использовать только API FreeTDS, то ODBC (ни unixODBC, ни iODBC и т.д.) тебе не нужен вообще. НО! В freeTDS отсутствуют некоторые специфические возможности, которые есть в полноценном odbc. Какие точно сказать не могу, но что они есть - это факт. Поэтому какой вариант выбрать - решать тебе. Я выбрал все таки связку: unixODBC + FreeTDS.

Что касается проверки, будет ли работать freetds сам без unixODBC пока лениво пробовать, это надо ось переустанавливать, чтоб как бы с нуля все ставить.

Нет, ось переустанавливать не нужно. Достаточно удалить все libodbc*.so* из каталога UNIXODBC_DIR/lib, файлы odbc.ini и odbcinst.ini из UNIXODBC_DIR/etc и исполняемые из UNIXODBC_DIR/bin (типа odbcinst, ODBCManager и т.п.) которые имеют отношение к unixODBC (где UNIXODBC_DIR - каталог, куда ты поставил ODBC). А вообще, похоже тебе вообще не понадобиться что-либо удалять.

Спасибо за участие..

Да ладно... ;)

Конечно есть расхождение. У меня все в koi8-r.

См. выше про client charset

Кстати, я вообще odbc.ini и odbcinst.ini  не правил и не настраивал, может поэтому уменя isql ругается. А что у тебя в этих файлах? Ща доку порою про это1:) Ну freetds у меня заработал, я как бы и забил на эти файлы!

Их не надо править. Используй шаблоны для DSN-коннектов и драйвера TDS.
Вот здесь почитай: http://www.unixodbc.org/doc/FreeTDS.html

Кстати, есть еще один продукт от Easysoft http://www.easysoft.com/ Не смотрел его, но кажется он коммерческий, я с лицензией не разбирался.

Да, коммерческий. Что неприемлемо. В принципе, для 99% случаев freeTDS будет достаточно.

С уважением..

Взаимно :).
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
maxlor
Сообщения: 17

Re: unixODBC + cp1251

Сообщение maxlor »

(VAVka @ Понедельник, 06 Июня 2005, 5:06) писал(а):Стоп. Ничего искать не надо. По крайней мере, для нормальной работы freeTDS.
Оказалось, что все дело в одной единственной гребаной строчке в freetds.conf:
client charset = CP1251
Вместо СР1251 укажи свою. Это действие заставит говорить нормально ВСЕ приложения, которые используют unixODBC и freeDTS.
Навсякий случай, прилаживаю текстовичек с описанием моих конфигов freetds.conf, .odbc.ini и odbcinst.ini (см. аттачмент). Изучай.

Да, большое спасибо, пояснения, и приложенный файл, однако я обратил внимание, что в твоем freetds.conf данная опция не присутствует. Это так задумано?

(VAVka @ Понедельник, 06 Июня 2005, 5:06) писал(а):Их не надо править. Используй шаблоны для DSN-коннектов и драйвера TDS.
Вот здесь почитай: http://www.unixodbc.org/doc/FreeTDS.html


Эту статью в переводе я читал на ситфоруме, гдето вверху я ссылку давал. Спасибо!

С уважением..
Slackware 10.1, AMD-500, mem 96
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: unixODBC + cp1251

Сообщение VAVka »

Да, большое спасибо, пояснения, и приложенный файл, однако я обратил внимание, что в твоем freetds.conf данная опция не присутствует. Это так задумано?

Пардон, ошибочка-с... :) Действительно, это "немного устаревшая версия" конфигов. Конечно, эту волшебную строчку необходимо добавить.
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
maxlor
Сообщения: 17

Re: unixODBC + cp1251

Сообщение maxlor »

Не удается мне заставить читать корректно кирилицу, не помогает client charset = XXX. Пока не могу разобраться! Хотя удалось настроить работу и через freetds и через unixODBC, что раньше у меня не получалось. И там м там данные передаются совершенно одинаково. Пока проболжаю бороться!:)

С уважением..
Slackware 10.1, AMD-500, mem 96
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: unixODBC + cp1251

Сообщение VAVka »

Искренне желаю успехов! Если появятся вопросы - пиши, будем вместе разбираться.
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
maxlor
Сообщения: 17

Re: unixODBC + cp1251

Сообщение maxlor »

(VAVka @ Вторник, 14 Июня 2005, 5:32) писал(а):Искренне желаю успехов! Если появятся вопросы - пиши, будем вместе разбираться.

Спасибо за добрые пожелания.. B)

Хочу привести пару фрагментов из log-файла freetds.log, может эта информация натолкнет что то что может помочь в моем случае..

Код: Выделить всё

11:31:34.711862 Starting log file for FreeTDS 0.63
    on 2005-06-15 11:31:34 with debug level 99.
11:31:34.754989 names for ISO-8859-1: ISO-8859-1
11:31:34.755146 names for UTF-8: UTF-8
11:31:34.755247 names for UCS-2LE: UCS-2LE
11:31:34.755326 names for UCS-2BE: UCS-2BE
11:31:34.755396 iconv to convert client-side data to the "KOI8-R" character set
11:31:34.761085 tds_iconv_info_init: converting "KOI8-R"->"UCS-2LE"
11:31:34.763806 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
11:31:34.763984 Connecting to 192.168.9.51 port 1433, TDS 7.0.
11:31:34.764908 tds_put_string converting 5 bytes of "tower"
11:31:34.770989 tds_put_string wrote 10 bytes
11:31:34.771101 tds_put_string converting 4 bytes of "TSQL"
11:31:34.771183 tds_put_string wrote 8 bytes
11:31:34.771257 tds_put_string converting 6 bytes of "APOLLO"
11:31:34.771335 tds_put_string wrote 12 bytes
11:31:34.771409 tds_put_string converting 11 bytes of "TDS-Library"
11:31:34.771488 tds_put_string wrote 22 bytes
11:31:34.771561 tds_put_string converting 10 bytes of "us_english"
11:31:34.771639 tds_put_string wrote 20 bytes
11:31:34.771713 tds_put_string wrote 0 bytes
11:31:34.771920 tds_process_login_tokens()
11:31:34.774208 Received header


Что это за кодировка UCS-2LE?
tower - это клиент
APOLLO - MSSQL сервер

И еще тут речь идет о трех полях, iduser int, dtname char, dtmaxsize int

Код: Выделить всё

11:32:13.776986 tds7_get_data_info:1558:
    colname = iduser (6 bytes)
    type = 56 (int)
    server's type = 56 (int)
    column_varint_size = 0
    column_size = 4 (4 on server)


Код: Выделить всё

11:32:13.777081 adjust_character_column_size:
    Server charset: ISO-8859-1
    Server column_size: 40
    Client charset: KOI8-R
    Client column_size: 40
11:32:13.777163 tds_get_string: reading 12 from wire to give 6 to client.
11:32:13.777246 tds7_get_data_info:1558:
    colname = dtname (6 bytes)
    type = 47 (char)
    server's type = 175 (xchar)
    column_varint_size = 2
    column_size = 40 (40 on server)
11:32:13.777336 tds_get_string: reading 18 from wire to give 9 to client.

Вот тут в этом поле лабуда лезет когда в поле текст с кириллицей
Может будут какие нить мысли по этому поводу

Код: Выделить всё

11:32:13.777421 tds7_get_data_info:1558:
    colname = dtmaxsize (9 bytes)
    type = 38 (integer-null)
    server's type = 38 (integer-null)
    column_varint_size = 1
    column_size = 4 (4 on server)


С уважением..
Slackware 10.1, AMD-500, mem 96
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: unixODBC + cp1251

Сообщение VAVka »

А что, у тебя SQL сервер работает в кодировке ISO-8859-1? Query Analyzer нормально кирилицу отображает? Чтобы уточнить кодировку сервера из isql или tsql выполни:

Код: Выделить всё

SELECT SERVERPROPERTY('collation')

и запость результат сюда.
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
maxlor
Сообщения: 17

Re: unixODBC + cp1251

Сообщение maxlor »

(VAVka @ Четверг, 16 Июня 2005, 5:47) писал(а):А что, у тебя SQL сервер работает в кодировке ISO-8859-1? Query Analyzer нормально кирилицу отображает? Чтобы уточнить кодировку сервера из isql или tsql выполни:

Код: Выделить всё

SELECT SERVERPROPERTY('collation')

и запость результат сюда.


Вообще я для сервера при установке не выбирал collation, по умолчанию стоит SQL_Latin1_General_CP1_CI_AS

Однако, когда я создаю конкретную БД то обязательно устанавливаю collation для нее. Это нормальная практика. В данном случае с моей БД установлена Cyrillic_General_CS_AI, все это хозяйство активно используется и ни каких проблем с кириллицей ни в клиентских win-приложениях, ни в query analizer нет.

Вот результат выполнения sp_helpdb lib (lib это тестовая базка)

Код: Выделить всё

sp_helpdb lib

Status=ONLINE,
Updateability=READ_WRITE,
UserAccess=MULTI_USER,
Recovery=FULL,
Version=539,
Collation=Cyrillic_General_CS_AI,
SQLSortOrder=0,
IsTornPageDetectionEnabled,
IsAutoCreateStatistics,
IsAutoUpdateStatistics


При выполнении в isql и tsql результаты запроса такие же как и приведенные выше, которые я выполнил из query analizer

А как настроены эти параметры у тебя? Я имею ввиду collation для сервера и для конкретной БД?

С уважением..
Slackware 10.1, AMD-500, mem 96
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: unixODBC + cp1251

Сообщение VAVka »

У меня тоже самое, один-в-один. Разве что у сервера дефолтная кодировка стоит также Cyrillic_General_CS_AI. Но это не главное.
Судя по пред-предыдущему твоему посту, проблема сужается до преобразования СР1251 -> KOI8-R, которое происходит на стороне клиента в iconv (это такая либа по перекодированию). Копать надо в эту сторону, я думаю. Пока, проверки ради, попробуй отключить использование iconv в FreeTDS.
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
raf
Сообщения: 2

Re: unixODBC + cp1251

Сообщение raf »

Привет ALL!
Я пытаюсь подключить php к mssql на Линуксе.
Все настроено верно, с кодировками вроде проблем нет,
через tsql выдает по-русски в консоль,
НО пхп не подключается с помощью mssql_connect()
функция mssql_get_last_message() выдает: "Changed language setting to us_english."

теперь возьмем freetds.log:

если подключаться tsql (который работает):
последние строчки в этом файле:

Код: Выделить всё

...
16:24:25.252690 tds_process_end: more_results = 0
        was_cancelled = 0
        error = 0
        done_count_valid = 0
16:24:25.252704 tds_process_end() state set to TDS_IDLE
16:24:25.252718 tds_process_result_tokens() state is COMPLETED
16:24:35.822918 tds_free_all_results()
//все в порядке и...
//дальше идет мой запрос, который выполняется
16:24:35.822970 tds_put_string converting 20 bytes of "select * from users
"
...


если с помощью пхп 4.3.2 в комбинации с апачем 2: (не подключает mssql)

Код: Выделить всё

...
15:03:52.075333 tds_process_end: more_results = 0
        was_cancelled = 0
        error = 0
        done_count_valid = 0
15:03:52.075347 tds_process_end() state set to TDS_IDLE
15:03:52.075360 tds_process_result_tokens() state is COMPLETED
15:03:52.075378 UNIMPLEMENTED dbsetopt(option = 7)//вот поледняя строчка что-то должна означать!


начало лога для пхп:

Код: Выделить всё

15:03:52.073256 Starting log file for FreeTDS 0.63
    on 2006-02-20 15:03:52 with debug level 99.
15:03:52.073293 iconv to convert client-side data to the "cp1251" character set
15:03:52.073329 tds_iconv_info_init: converting "CP1251"->"UCS-2LE"
15:03:52.073363 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
15:03:52.073381 Connecting to 192.168.1.3 port 1433, TDS 8.0.

и для tsql:

Код: Выделить всё

16:24:25.250111 Starting log file for FreeTDS 0.63
    on 2006-02-17 16:24:25 with debug level 99.
16:24:25.250276 names for ISO-8859-1: ISO-8859-1
16:24:25.250295 names for UTF-8: UTF-8
16:24:25.250308 names for UCS-2LE: UCS-2LE
16:24:25.250322 names for UCS-2BE: UCS-2BE
16:24:25.250335 iconv to convert client-side data to the "KOI8-R" character set
16:24:25.250432 tds_iconv_info_init: converting "KOI8-R"->"UCS-2LE"
16:24:25.250468 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
16:24:25.250489 Connecting to 192.168.1.3 port 1433, TDS 8.0.

как-то они по-разному, по-своему конвертят, хз может и совсем не в этом дело...
Спасибо сказали:
raf
Сообщения: 2

Re: unixODBC + cp1251

Сообщение raf »

а без iconv пхп с поддержкой mssql поставить низзя никак - ругается
Спасибо сказали: