
29.08.2009, 15:16
|
|
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме: 175879
Репутация:
3
|
|
спс, ща буду пробовать
|
|
|

29.08.2009, 15:52
|
|
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме: 175879
Репутация:
3
|
|
неа, всё равно, выскакивает �����4�3�4�5
|
|
|

29.08.2009, 15:56
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Большой джо
неа, всё равно, выскакивает �����4�3�4�5
на iconv действует нукоторое ограничение.+ не всегда mb_detect_encoding может определить кодировку.
как вариант, но тоже не 100%
http://popoff.donetsk.ua/text/work/libs/a/charset/
лично я для определния utf-8 использую вот это условие
PHP код:
if (preg_match('//u', $string)) { /* у вас UTF-8 */ }
Последний раз редактировалось RedBull@12; 29.08.2009 в 15:59..
|
|
|

29.08.2009, 16:09
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
Функция определения кодировки:
PHP код:
<?php
define('LOWERCASE',3);
define('UPPERCASE',1);
function detect_cyr_charset($str) {
$charsets = Array(
'k' => 0,
'w' => 0,
'd' => 0,
'i' => 0,
'm' => 0
);
for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
$char = ord($str[$i]);
//non-russian characters
if ($char < 128 || $char > 256) continue;
//CP866
if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
$charsets['d']+=LOWERCASE;
if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
//KOI8-R
if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
//WIN-1251
if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
//MAC
if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
//ISO-8859-5
if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
}
arsort($charsets);
return key($charsets);
}
?>
|
|
|

29.08.2009, 16:15
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от b3
Функция определения кодировки:
PHP код:
<?php
define('LOWERCASE',3);
define('UPPERCASE',1);
function detect_cyr_charset($str) {
$charsets = Array(
'k' => 0,
'w' => 0,
'd' => 0,
'i' => 0,
'm' => 0
);
for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
$char = ord($str[$i]);
//non-russian characters
if ($char < 128 || $char > 256) continue;
//CP866
if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
$charsets['d']+=LOWERCASE;
if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
//KOI8-R
if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
//WIN-1251
if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
//MAC
if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
//ISO-8859-5
if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
}
arsort($charsets);
return key($charsets);
}
?>
данный код не верно определяет кодировку в некоторых случаях.
Текст, набранный ЗАГЛАВНЫМИ БУКВАМИ определяет как KOI-8, а не win-1251
и
Текст, набранный только заглавными в ср1251 или только строчными в koi8-r попадает в один и тот же диапазон символов(191..224), так что однозначно определить кодировку попросту невозможно. И это ещё не учли unicode...
привиденная мною библиотека более корректно определяет кодировку, да и по сабжу больше походит.
|
|
|

29.08.2009, 16:26
|
|
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме: 175879
Репутация:
3
|
|
ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!
|
|
|

29.08.2009, 16:29
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Большой джо
ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!
вы мои посты не видите?!я описал два метода...
1-http://popoff.donetsk.ua/text/work/libs/a/charset/ подключите библиотеку для конверта в cp1251
2-метод которым пользуюсь, тоже повзаимствованный, if (preg_match('//u', $string)) { /* у вас UTF-8 */ }
в чем проблема?!совместите два метода и дейлате что хотите.
|
|
|

29.08.2009, 16:32
|
|
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме: 175879
Репутация:
3
|
|
извиняюсь, пропустил посты, всё норма работает, спс =)
|
|
|

29.08.2009, 17:03
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
|
|
|

29.08.2009, 17:09
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Fepsis
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|