Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
1-1212574524
SergGG
2008-06-04 14:15
2009.08.23
Номер иконки курсора мыши


2-1245226924
девушка
2009-06-17 12:22
2009.08.23
Вызов ХП из FastReport


2-1245608753
AlexLLL
2009-06-21 22:25
2009.08.23
Сортировка TList


2-1245781221
Footballer
2009-06-23 22:20
2009.08.23
Не дать закрыть чужому приложению


2-1245244901
TheEd
2009-06-17 17:21
2009.08.23
Странное поведение ShowModal...