Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Декодировать текст
Форумы портала PHP.SU » PHP » Программирование на PHP » Декодировать текст

Страниц (1): [1]
 

1. dembi - 29 Января, 2010 - 11:16:43 - перейти к сообщению
Привет всем.

Есть вот такой текст. в кодировке: utf-8

d0 94 d0 bb d0 b8 d0 bd d0
bd d0 be d0 b5 20 d1 81 d0 be d0 be d0 b1 d1 89
d0 b5 d0 bd d0 b8 d0 b5 20 28 20 d0 91 d0 be d0
bb d0 b5 d0 b5 20 37 30 2d d1 82 d0 b8 20 d1 81
d0 b8 d0 bc d0 b2 d0 be d0 bb d0 be d0 b2 20 29
20 d0 b4 d0 bb d1 8f 20 d0 bf d1 80 d0 be d0 b2
d0 b5 d1 80 d0 ba d0 b8 20 d0 be d1 82 d0 bf d1
80 d0 b0 d0 b2 d0 ba d0 b8 20 d0 b4

Подскажите, как мне преобразовать его в текст???
Заранее спасибо.
(Добавление)
Может кто-то подскажет как можно любой текст в кодировке utf-8 получить в hex виде?
2. movEAX2 - 29 Января, 2010 - 12:33:27 - перейти к сообщению
Поищи информацию по функциям pack/unpack
3. JustUserR - 29 Января, 2010 - 13:36:15 - перейти к сообщению
dembi Вообще как вариант "в лоб" можно заменить все пробелы на знак % (А если пробелов нет то разбить попарно и добавить знак %) и потом сделать urldecode - ну и если надо то потом поменять кодировку
4. Мелкий - 29 Января, 2010 - 15:30:08 - перейти к сообщению
dembi пишет:
Может кто-то подскажет как можно любой текст в кодировке utf-8 получить в hex виде?

PHP:
скопировать код в буфер обмена
  1.  
  2. function HexToStr($string) {
  3.     $hex='';
  4.     for ($i=0; $i < strlen($string); $i++)
  5.     {
  6.         $hex .= dechex(ord($string[$i]));
  7.     }
  8.     return $hex;
  9. }

С латинскими символами, по крайней мере, работает точно корректно.

Обратной функции готовой нету у меня, но должно быть что-то вроде:
PHP:
скопировать код в буфер обмена
  1. function strToHex($string) {
  2.     $hex='';
  3.     for ($i=0; $i < strlen($string); $i++)
  4.     {
  5.         $hex .= chr(hexdec($string[$i]));
  6.     }
  7.     return $hex;
  8. }
5. JustUserR - 29 Января, 2010 - 15:35:08 - перейти к сообщению
dembi пишет:
Может кто-то подскажет как можно любой текст в кодировке utf-8 получить в hex виде?
Сделать urlencode потом удалить знаки % и разбить все символы попарно - и получить такой эе текст как у вас приведено в примере
6. Ch_chov - 29 Января, 2010 - 16:54:16 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $data = 'd0 94 d0 bb d0 b8 d0 bd d0 bd d0 be d0 b5 20 d1 81 d0 be d0 be d0 b1 d1 89 d0 b5 d0 bd d0 b8 d0 b5 20 28 20 d0 91 d0 be d0 bb d0 b5 d0 b5 20 37 30 2d d1 82 d0 b8 20 d1 81 d0 b8 d0 bc d0 b2 d0 be d0 bb d0 be d0 b2 20 29 20 d0 b4 d0 bb d1 8f 20 d0 bf d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b8 20 d0 be d1 82 d0 bf d1 80 d0 b0 d0 b2 d0 ba d0 b8 20 d0 b4';
  2.  
  3. $data = explode(' ', $data);
  4. $cnt = count($data);
  5. for($i = 0; $i+1 < $cnt; $i+=2)
  6.   $bin[] = pack ("nv*", hexdec($data[$i].$data[$i+1]));
  7. $result = implode('', $bin);
  8.  
  9. //$result = 'Длинное сообщение ( Более 70-ти символов ) для проверки отправки';

 

Powered by ExBB FM 1.0 RC1