Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 09:06:40

Страниц: [1]
Печать
Автор Тема: Unicode в обычный текст (как сделать?)  (Прочитано 2659 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
TRIAL    ↓ 
06 Август, 2007, 09:49:57
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Столкнулся с такой пролемой.
Нужно перевести юникод в кирилицу и вывести на странице.
(если ничего конечно не путаю, то это именно юникод, ставил в браузере Unicode - utf8 и текст отображался)
Вот данный текст - %d0%ba%d1%83%d0%bb%d0%b5%d1%80%d1%8b+%d0%bc%d0%be%d1%81%d0%ba%d0%b2%d0%b0
Я его выдергиваю из запроса гугла. как я понял он всё таким образом передат. Чего-то другие поисковые запросы просто обрабатываются функцией urldecode() а тут абракадабру выдает.
Вобщем вроде описал суть проблемы :)
Кстати можно как-то изначально определить какая кодировка идет? А то у меня уже из запроса в яндексе такая же хрень в юникоде проскакивала.
Записан

from TRIAL with LOVE
vasa_c    ↓ 
06 Август, 2007, 10:39:13 , спустя 49 минут 16 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

urldecode -> получаешь исходную строку (в кодировке utf).
потом
mb_convert_encoding() или iconv().
Записан

TRIAL    ↓ 
06 Август, 2007, 03:57:25 , спустя 5 часов 18 минут 12 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Работает функция отлично но только в конкретных случаях.
Просто одни запросы она начинает отображать нормально, а вот те что до этого работали, пропадают совсем.
Пытался использовать mb_detect_encoding(). Но он походу не всё правильно определяет.
Например для кривого и нормального запросов, он мне выдал одну и ту же кодировку ASCII.
Можно как-то точно определять кодировку?
Записан

from TRIAL with LOVE
vasa_c    ↓ 
06 Август, 2007, 04:07:26 , спустя 10 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Приводи код. urldecode используешь?
обрати внимание на чередующийся %d0...%d1 это точно кирилица в юникоде.
Записан

vasa_c    ↓ 
06 Август, 2007, 04:10:16 , спустя 2 минуты 50 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

HTML

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<?php
 
print urlDecode('%d0%ba%d1%83%d0%bb%d0%b5%d1%80%d1%8b+%d0%bc%d0%be%d1%81%d0%ba%d0%b2%d0%b0');
 
?>

 
HTML (Unknown Language)
кулеры москва
HTML

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<?php
 
print
    mb_convert_encoding(
        urlDecode('%d0%ba%d1%83%d0%bb%d0%b5%d1%80%d1%8b+%d0%bc%d0%be%d1%81%d0%ba%d0%b2%d0%b0'),   
        'windows-1251',
        'utf-8'
    );
 
?>

 
HTML (Unknown Language)
кулеры москва
« Последнее редактирование: 06 Август, 2007, 04:12:16 от vasa_c » Записан

TRIAL    ↓ 
06 Август, 2007, 04:16:52 , спустя 6 минут 36 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Не всегда это работает. Если так сделать, то кривые запросы начинают отображаться а вот нормальные перестают.
Щас сделал так:
Text
$s1 = mb_convert_encoding(urldecode($search_arr1[0]), "windows-1251", "auto");
if(strlen($s1)<1) $s1 = urldecode($search_arr1[0]);
Пока всё работает. Посморим что дальше будет.
Просто как я уже говорил изначально не знаю в какой кодировке придет запрос из URL'a.
Записан

from TRIAL with LOVE
vasa_c    ↓ 
06 Август, 2007, 04:20:22 , спустя 3 минуты 30 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

1. Что значит "кривые"?
2. Откуда он вообще приходит?
Записан

md5    ↓ 
06 Август, 2007, 04:25:19 , спустя 4 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

ну тут он походу составляет список поисковых слов, по которым приходят юзеры для статы
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
TRIAL    ↓ 
06 Август, 2007, 05:45:51 , спустя 1 час 20 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Да, делаю именно это. Разбираю урлы на части и выдергиваю оттуда запросы.
 
Блин, опять моя фигня работает только для общего случая.
Причем забавный момент.
strlen($s1) выдает 1
стоит после этого проверка
if($s1 < 3) ...
И это условие не выполняется.
------
Всё, нашел очередной способ )))
вот:
Text
elseif($arr['host'] == "www.yandex.ru") {
    $search_arr = explode("text=", $arr['query']);
    $search_arr1 = explode("&", str_replace("+","%20", $search_arr[1]));
    $plus_arr = explode("%20", $search_arr1[0]);
    $s1 = mb_convert_encoding(urldecode($search_arr1[0]), "windows-1251", "auto");
    if(strlen($s1)<count($plus_arr)) $s1 = urldecode($search_arr1[0]);
    $search .= $s1."<br>";
}
Записан

from TRIAL with LOVE
zaxar    ↓ 
06 Август, 2007, 06:04:41 , спустя 18 минут 50 секунд
НЕ ХУЕТА! ХУЕТА!
Группа: Жмурики

Карма: 4
Сообщений: 29
Сила слова: 13.79

Причем забавный момент.
strlen($s1) выдает 1
стоит после этого проверка
if($s1 < 3) ...
И это условие не выполняется.

Ничего забавного. Что хранится в $s1 ? Уверен, что не своя же собственная длина!
 
if(strlen($s1) < 3)
Записан

if($today=="day of zarplata") $i_am=":)";
Страниц: [1]
Печать
 

Перейти в: