Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

21.11.2007, 03:53
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
Ajax кодировка
Да...тема больная...
В гугле решений видел много...
Ничего не помогает..
Вообщем вместо кирилицы отображает вопросы...
ЖЭто плохо..
Скажи как избавиться от этого..
Хедеры писать пробовал, мета теги пробовал...
|
|
|

21.11.2007, 04:10
|
|
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
Провел на форуме: 5939734
Репутация:
1917
|
|
мож в апаче mod_charset включен?
__________________
Карфаген должен быть разрушен...
|
|
|

21.11.2007, 04:38
|
|
Постоянный
Регистрация: 15.03.2006
Сообщений: 600
Провел на форуме: 5091304
Репутация:
1203
|
|
Выложи файл который у тебя отображается вопросами.
Скорее всего дело не в хедерах и мета тегах, а в кодировке самого созданного файла.
|
|
|

21.11.2007, 09:25
|
|
Новичок
Регистрация: 11.11.2007
Сообщений: 10
Провел на форуме: 18671
Репутация:
7
|
|
Тут надо смотреть -- на получении информация в какой кодировке ходит? Может она при извлечении из БД(?) уже не в той кодировке, а ты ее по ajax'у кидаешь 
|
|
|

21.11.2007, 11:01
|
|
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме: 7364332
Репутация:
1276
|
|
Вот держи
PHP код:
<?php
// DIAgen (x) antichat.ru
@ob_start();
@ob_implicit_flush(0);
error_reporting(7);
function win_to_utf($str, $from = "w") {
$recode['w']=array(
0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
);
$recode['k']=array(
0x2500,0x2502,0x250c,0x2510,0x2514,0x2518,0x251c,0x2524,
0x252c,0x2534,0x253c,0x2580,0x2584,0x2588,0x258c,0x2590,
0x2591,0x2592,0x2593,0x2320,0x25a0,0x2219,0x221a,0x2248,
0x2264,0x2265,0x00a0,0x2321,0x00b0,0x00b2,0x00b7,0x00f7,
0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556,
0x2557,0x2558,0x2559,0x255a,0x255b,0x255c,0x255d,0x255e,
0x255f,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565,
0x2566,0x2567,0x2568,0x2569,0x256a,0x256b,0x256c,0x00a9,
0x044e,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
0x0445,0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,
0x043f,0x044f,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
0x044c,0x044b,0x0437,0x0448,0x044d,0x0449,0x0447,0x044a,
0x042e,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
0x0425,0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,
0x041f,0x042f,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
0x042c,0x042b,0x0417,0x0428,0x042d,0x0429,0x0427,0x042a
);
for ($i=0;$i<strlen($str);$i++) {
$letter = ord($str[$i]);
if ($letter>=0x80) {
$letter -= 128;
$c2 = "10111111" & "10".substr(decbin($recode[$from][$letter]), -6);
$c1 = "11011111" & "110".str_repeat("0", 5-strlen(substr(decbin($recode[$from][$letter]), 0, -6))).substr(decbin($recode[$from][$letter]), 0, -6);
$res .= chr(bindec($c1));
$res .= chr(bindec($c2));
} else {
$res .= $str[$i];
}
}
return $res;
}
?>
И так у нас тут идет кириллица....
и все такое...)
Или какой нибудь код который выполняется и выводится кириллицей...
<?php
$Contents = ob_get_contents () ;
ob_end_clean () ;
echo win_to_utf($Contents);
?>
Ну думаю что тут и так все понятно...
|
|
|

21.11.2007, 12:13
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
2 DIAgen
Может я в чем то и ошибаюсь, но для перевода из одной кириллической кодировки в другую в пхп есть встроенная функция :convert_cyr_string, зачем придумывать вилосипед?
|
|
|

21.11.2007, 12:26
|
|
Участник форума
Регистрация: 09.02.2007
Сообщений: 202
Провел на форуме: 537148
Репутация:
9
|
|
а может так
function utf ($input){
$input=iconv("CP1251", "UTF-8", $input);
return $input;
}
пример utf('привет');
|
|
|

21.11.2007, 12:35
|
|
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме: 7364332
Репутация:
1276
|
|
Сообщение от AkyHa_MaTaTa
2 DIAgen
Может я в чем то и ошибаюсь, но для перевода из одной кириллической кодировки в другую в пхп есть встроенная функция :convert_cyr_string, зачем придумывать вилосипед?
Эта функция конвертирует только кириллицу
string convert_cyr_string ( string str, string from, string to )
Эта функция преобразует строку str из одной кириллической кодировки в другую.
Поддерживаются следующие кодировки:
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic
А на сколько я знаю.. ajax понимает только UTF-8, может и ошибаюс...)
Сообщение от Student :)
а может так
function utf ($input){
$input=iconv("CP1251", "UTF-8", $input);
return $input;
}
пример utf('привет');
Можно и так... вот только на не которых серваках выскаивает ошибка о том что модуль для работы iconv не подключен... хз почему...
|
|
|

21.11.2007, 12:38
|
|
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме: 3152874
Репутация:
1020
|
|
дак...
Сообщение от Isis
Вообщем вместо кирилицы отображает вопросы...
Ну да ладно ты все равна молоток, не поленился зделать велосипед.
|
|
|

21.11.2007, 12:38
|
|
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме: 951141
Репутация:
291
|
|
>может и ошибаюс...)
скорее всего да.
если тс не может менять в заголовках чарсет,пусть переведет страницы на ту кодировку в которой броузер пытается открыть
еще вроде есть
overmimetype
хз работает или нет
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|