Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Внизphp mssql Найти похожие ветки
← →
Style © (2009-06-22 14:08) [0]Есть ли возможность установить кодировку для соединения в utf-8 для работы с функциями php под windows. Опция ini-шника mssql.charset как я понял только для freetds. Или только самому все перекодировать?
← →
Something (2009-06-22 14:23) [1]ms sql server не знает utf-8, а php_mssql вдобавок не знает и utf-16 и на клиенте перекодирует ее в ANSI. Так что да, сортировку руками, хранить же данные можно и в utf, серверу безразлично что записывается в поле
← →
Style © (2009-06-22 14:41) [2]
> Так что да, сортировку руками,
кодировку наврена :))
> хранить же данные можно и в utf, серверу безразлично что
> записывается в поле
хранить то я не могу в UTF-8, сервер другими системами используется.
вот чего нарыл.
http://docs.moodle.org/en/Installing_MSSQL_for_PHP
есть FreeTDS под винду откомпилированный как ext для php полностью повторяющий функции php_mssql.dll
ща буду пробовать
← →
Something (2009-06-22 15:22) [3]>> Так что да, сортировку руками,
>кодировку наврена :))
именно сортировку, т.к поскольку в списке COLLATION сервера utf не имеется, кирилица не будет сортироваться по ORDER BY.
насчет freetds, интересная мысль, смущает только название дллки - php_dblib.
наводит на мысль о использовании ntwdblib.dll так же, как это делает php_mssql, со всеми вытекающими "прелестями"
← →
Style © (2009-06-22 16:48) [4]
> наводит на мысль о использовании ntwdblib.dll так же, как
> это делает php_mssql, со всеми вытекающими "прелестями"
все равно не работает.
серверная кодировка CP1251
мне на клиенте надо получить UTF-8
подкрутил эту библиотеку и включил там debug dump
во freetds.conf
iconv.c:363:iconv to convert client-side data to the "UTF-8" character set
iconv.c:516:tds_iconv_info_init: converting "UTF-8"->"UCS-2LE"
iconv.c:516:tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
net.c:210:Connecting to *.*.*.* port 1433 (TDS version 7.0)
теперь FreeTDS видимо пытается ICONVить данные, но все равно получается не то.
Причем под линуховой версией все работает нормульно.
Может надо в cliconfg ANSI to OEM убрать.
← →
Something (2009-06-23 10:45) [5]в общем правильным подходом наверное будет таки mbstring, если конечно объем кода, который придется прошерстить на предмет вставки mb_convert... не превышает разумные пределы.
или линукс в виртуалбоксе :)
← →
Style © (2009-06-23 10:49) [6]Да, время - не стал терять. Сделал iconv (cp1251 -> utf8)
после Fetch
А также utf8 -> cp1251 перед передачей параметров в процедуры и выполнением
sql запросов.
Соответственно cp1251 -> utf8 обратно, для output параметров.
Не красиво конечно - но работает.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c