|
|
|
| Пишу страничку статистики, после urldecode() , все впрлне нормально, кроме забугорных поисковиков google, msn, итд запрос выдают на UTF-8, а статистика с наших в win-1251 и все это на одной странице, естественно или то или другое в крякозябрах, Попробовал iconv(), не помогло, следующим шагом была попытка использовать convert_cyr_string(), но там нет формата UTF, как быть? Выручайте!!! | |
|
|
|
|
|
|
|
для: $OMEGA
(16.04.2005 в 08:41)
| | Сходная система решается в нашем счётчике PowerCounter, который можно свободно загрузить из раздела downloads http://www.softtime.ru/info/downloads.php, чтобы создать унифицированный скрипт, не зависящий от iconv можно воспользоваться следующей функцией
<?php
function utf8_win($s)
{
$s=str_replace("\xD0\xB0","а",$s); $s=str_replace("\xD0\x90","А",$s);
$s=str_replace("\xD0\xB1","б",$s); $s=str_replace("\xD0\x91","Б",$s);
$s=str_replace("\xD0\xB2","в",$s); $s=str_replace("\xD0\x92","В",$s);
$s=str_replace("\xD0\xB3","г",$s); $s=str_replace("\xD0\x93","Г",$s);
$s=str_replace("\xD0\xB4","д",$s); $s=str_replace("\xD0\x94","Д",$s);
$s=str_replace("\xD0\xB5","е",$s); $s=str_replace("\xD0\x95","Е",$s);
$s=str_replace("\xD1\x91","ё",$s); $s=str_replace("\xD0\x81","Ё",$s);
$s=str_replace("\xD0\xB6","ж",$s); $s=str_replace("\xD0\x96","Ж",$s);
$s=str_replace("\xD0\xB7","з",$s); $s=str_replace("\xD0\x97","З",$s);
$s=str_replace("\xD0\xB8","и",$s); $s=str_replace("\xD0\x98","И",$s);
$s=str_replace("\xD0\xB9","й",$s); $s=str_replace("\xD0\x99","Й",$s);
$s=str_replace("\xD0\xBA","к",$s); $s=str_replace("\xD0\x9A","К",$s);
$s=str_replace("\xD0\xBB","л",$s); $s=str_replace("\xD0\x9B","Л",$s);
$s=str_replace("\xD0\xBC","м",$s); $s=str_replace("\xD0\x9C","М",$s);
$s=str_replace("\xD0\xBD","н",$s); $s=str_replace("\xD0\x9D","Н",$s);
$s=str_replace("\xD0\xBE","о",$s); $s=str_replace("\xD0\x9E","О",$s);
$s=str_replace("\xD0\xBF","п",$s); $s=str_replace("\xD0\x9F","П",$s);
$s=str_replace("\xD1\x80","р",$s); $s=str_replace("\xD0\xA0","Р",$s);
$s=str_replace("\xD1\x81","с",$s); $s=str_replace("\xD0\xA1","С",$s);
$s=str_replace("\xD1\x82","т",$s); $s=str_replace("\xD0\xA2","Т",$s);
$s=str_replace("\xD1\x83","у",$s); $s=str_replace("\xD0\xA3","У",$s);
$s=str_replace("\xD1\x84","ф",$s); $s=str_replace("\xD0\xA4","Ф",$s);
$s=str_replace("\xD1\x85","х",$s); $s=str_replace("\xD0\xA5","Х",$s);
$s=str_replace("\xD1\x86","ц",$s); $s=str_replace("\xD0\xA6","Ц",$s);
$s=str_replace("\xD1\x87","ч",$s); $s=str_replace("\xD0\xA7","Ч",$s);
$s=str_replace("\xD1\x88","ш",$s); $s=str_replace("\xD0\xA8","Ш",$s);
$s=str_replace("\xD1\x89","щ",$s); $s=str_replace("\xD0\xA9","Щ",$s);
$s=str_replace("\xD1\x8A","ъ",$s); $s=str_replace("\xD0\xAA","Ъ",$s);
$s=str_replace("\xD1\x8B","ы",$s); $s=str_replace("\xD0\xAB","Ы",$s);
$s=str_replace("\xD1\x8C","ь",$s); $s=str_replace("\xD0\xAC","Ь",$s);
$s=str_replace("\xD1\x8D","э",$s); $s=str_replace("\xD0\xAD","Э",$s);
$s=str_replace("\xD1\x8E","ю",$s); $s=str_replace("\xD0\xAE","Ю",$s);
$s=str_replace("\xD1\x8F","я",$s); $s=str_replace("\xD0\xAF","Я",$s);
return $s;
}
?>
|
Грубо, но работает :))) | |
|
|
|
|
|
|
|
для: cheops
(16.04.2005 в 11:49)
| | Огромное спасибо, но не совсем то , что надо - у меня есть строка типа: РєРѕР± , я понимаю, и многие со мной, что это не совсем UTF, или даже совсем не UTF, но при принудительной перезагрузке браузера в UTF-8 - он везде покажет крякозябры кроме этой фразы, там будет написано: "коб ", см мою переписку на вовебе: [url][/url]http://forum.woweb.ru/topic13869.html , конечно можно пойти по вашим стопам и написать собственную функцию, и даже не в падлу, но не ужели в РНР, ничего не предусмотрено по этому поводу, я понимаю проблема редкая, но если совета не получу, прийдется писать, результаты постараюсь прислать вам, но если кто нашел решение --- PLEASE HELP!!!!! | |
|
|
|
|
|
|
|
для: $OMEGA
(17.04.2005 в 01:13)
| | Да вообще говоря похоже не UTF-8... не могли бы вы сохранить в этой кодировке что-нибудь в файл и прикрепить его к сообщению, так как в тексте побъётся содержимое... может удасться найти решение? | |
|
|
|
|
|
|
|
для: cheops
(17.04.2005 в 01:36)
| | Все тут ничего не бьётся в броузере: Вид - Кодировка - UTF-8 , как писал будут крякозябры, но в начале сообщения будет : " коб " - единственное читаемое, могу ввести более длинные запросы, для эксперимента, прихожу к мысли - может русские запросы перекодировать в UTF, но както не патриотично, хотя проще чем писать новую функцию! | |
|
|
|
|
|
|
|
для: $OMEGA
(17.04.2005 в 01:58)
| | Чего-то не хватает... я пишу на локалке
и получается белиберда, тут действительно "коб"... вот почему бы неплохо нетронутую строку иметь для эксперимента, так как браузер невидимые символы может не пропечатывать или ещё чего сделать... | |
|
|
|
|
|
|
|
для: cheops
(17.04.2005 в 02:17)
| | Туто все собаки и порылись - нетронутая строка, это:
@ $url = $_SERVER['HTTP_REFERER'];
@ $sersh = $url['query'];
|
и сортировка статистики происходит от тудова, как быть прямо не знаю, как заметил с такой билебирдой никто не сталкивался!!! У меня в платной статистике - они крякозябры выдают!!! Потому и решил писать свою статистику! | |
|
|
|
|
|
|
|
для: $OMEGA
(17.04.2005 в 02:38)
| | Проблему решил через iconv() - пытался конвертировать из utf в iso и напрасно, поменял на windows-1251 и все заработало, спасибо всем за помощь, тему можно закрывать, хотя как говорится - на ошибках учатся! | |
|
|
|
|