Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1245789024
Юрий
2009-06-24 00:30
2009.08.23
С днем рождения ! 24 июня 2009 среда


2-1245851762
Cobalt
2009-06-24 17:56
2009.08.23
Как выбрать цвет выделения текста?


2-1245765164
Priest
2009-06-23 17:52
2009.08.23
Проблема с TBitmap


15-1245486265
TCrash
2009-06-20 12:24
2009.08.23
Органайзер/календарь


15-1245517111
Инкогнито
2009-06-20 20:58
2009.08.23
Возможность получить подсказку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский