Символы вида "%u0439/%u041C%u043E%u0438" @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 11 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Заголовок сообщения: Символы вида "%u0439/%u041C%u043E%u0438"
Сообщение Добавлено: 4 Май 2005, 12:39:29 
Как раскодировать символы вида "%u0439/%u041C%u043E%u0438"
(приходит запросом)

urldecode ни iconv не помогают, чую unicode, но нет...

Подсобите советом, что это может быть?

_________________
:: metal kick ass ::
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 4 Май 2005, 12:50:33 
MpaK999, ну почему нет? Если юникод, то вот, что у тебя написано:
Код:
й/Мои
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 4 Май 2005, 12:59:24 
Акела, отлично, нюх есть... теперь бы как это на PHP бы раскодировать?

iconv("UTF-8", "Windows-1251", $text) ; не желает :(

_________________
:: metal kick ass ::
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 4 Май 2005, 13:05:21 
MpaK999, х. з., не задумывался пока. Как отобразить в HTML - понятно. То, что ты сейчас предложил, ясно дело, не имеет никакого смысла, нужны символы UTF-8, а не их номера. То есть, весь вопрос - как конвертнуть в символы, а дальше делай что хошь. На PHP не задумывался, бо не было такой задачи, а на Perl имхо точно такое было сто раз. Поищи, наверняка найдётся.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 4 Май 2005, 13:23:20 
Если мне не изменяет память, то есть извратный способ -- преобразовать очевидным путем в HTML'ные & …. ; и затем использовать специальную фукнкцию для декодирования.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 4 Май 2005, 13:27:56 
Crazy, ну не особо он и извратный имхо. :) Также два шага.
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 4 Май 2005, 14:14:14 
Код:
$convmap = array(0xFF, 0x2FFFF, 0, 0xFFFF);
$text=str_replace('%u', '&#', $text);
$text = mb_encode_numericentity($text, $convmap, "UTF-8");
$text = utf8_decode($text);


проблема c $convmap - где брать эти зоны?

_________________
:: metal kick ass ::
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 4 Май 2005, 14:41:49 
Ну во-первых
Код:
<?
mb_decode_numericentity (string str, array convmap [, string encoding]) //зачем mb_encode_numericentity?
?>


Во-вторых
Код:
<?
$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ……..
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Специфицируется Unicode-значение для start_codeN и end_codeN
// Добавляется offsetN в значение и применяется битовое 'AND' с maskN,
// затем значение конвертируется в ссылку числовой строки.
?>


В-третьих лично мне пока легче от этого не стало. Научите, кто умный!
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 4 Май 2005, 19:15:35 
То есть, имхо, варианта три:

1) Выяснить подробности работы этой ф-ции и рассказать всем нам, чтоб не нарывались так же.

2) Найти перл-скрипт, измудриться привинтить его к своему ПХП и рассказать о результатах.

3) В тупую померять численый диапазон присылаемый по данному запросу, ручками составить массив и обеспечить подмену численых значений символами нужной кодировки. Массив в студию.

:D
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 5 Май 2005, 12:10:29 
решил прямо в лоб :)

Код:
$text='
/C:/Documents and Settings/ShpurloS - Tika%u0439/%u041C%u043E%u0438 %u0434%u043E%u043A%u0443%u043C%u0435%u043D%u0442%u044B/tmp/MpaK - Design for Underground - %u041D%u043E%u0432%u043E%u0441%u0442%u0438.htm

/F:/web-design/%u0428%u0430%u0431%u043B%u043E%u043D%u044B/MpaK - Design for Underground - %u041D%u043E%u0432%u043E%u0441%u0442%u0438.htm

/F:/web-design/%u0428%u0430%u0431%u043B%u043E%u043D%u044B/MpaK - Design for Underground.htm
';

$uni=array('%u0430', '%u0431', '%u0432', '%u0433', '%u0434', '%u0435', '%u0451', '%u0436', '%u0437', '%u0438', '%u0439', '%u043A', '%u043B', '%u043C', '%u043D', '%u043E', '%u043F', '%u0440', '%u0441', '%u0442', '%u0443', '%u0444', '%u0445', '%u0446', '%u0447', '%u0448', '%u0449', '%u044C', '%u044A', '%u044B', '%u044D', '%u044E', '%u044F', '%u0410', '%u0411', '%u0412', '%u0413', '%u0414', '%u0415', '%u041', '%u0416', '%u0417', '%u0418', '%u0419', '%u041A', '%u041B', '%u041C', '%u041D', '%u041E', '%u041F', '%u0420', '%u0421', '%u0422', '%u0423', '%u0424', '%u0425', '%u0426', '%u0427', '%u0428', '%u0429', '%u042C', '%u042A', '%u042B', '%u042D', '%u042E', '%u042F');
$sym=array('à', 'á', 'â', 'ã', 'ä', 'å', '¸', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ü', 'ú', 'û', 'ý', 'þ', 'ÿ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', '¨', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ü', 'Ú', 'Û', 'Ý', 'Þ', 'ß');
echo nl2br(str_replace($uni, $sym, $text));

_________________
:: metal kick ass ::
MpaK999 Муж.
участник
1
Сообщения: 1716
Зарегистрирован: 14.11.02
Откуда: Ufa/Russia
Сообщение Добавлено: 5 Май 2005, 12:11:18 
всем спасибо, думаю можно закрывать темку.

_________________
:: metal kick ass ::
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 11 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100