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 :: Версия для печати :: Как раскодировть строку? =?windows-1251?B?...?=
Форумы портала PHP.SU » » Вопросы новичков » Как раскодировть строку? =?windows-1251?B?...?=

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

1. Webtest - 20 Июня, 2014 - 10:29:48 - перейти к сообщению
Здравствуйте.

Есть строка вида: =?windows-1251?B?ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?=
Как перевести её в читабельый вид? Я уже весь интернет перегуглил и все кодировщики перепробовал - не работает.
2. LIME - 20 Июня, 2014 - 10:33:10 - перейти к сообщению
http://www.php.su/articles/?cat=...ail&page=001
где-то в начале найдешь ответ
3. Webtest - 20 Июня, 2014 - 10:49:13 - перейти к сообщению
LIME пишет:
http://www.php.su/articles/?cat=...ail&page=001
где-то в начале найдешь ответ

Нашел вот это:
<?php
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
?>
Уже пробовал несколько раз и по разному так делать:
Эта строка
echo $strReplace;
выводит
=?windows-1251?B?ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?=
Делаю такой код:
echo $sub = '=?windows-1251?B?'.base64_encode(convert_cyr_string('ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i', "w","k")).'?=';
или такой: $sub = '=?windows-1251?B?'.base64_encode(convert_cyr_string($strReplace, "w","k")).'?=';
Не работает в обоих случаях.
4. esterio - 20 Июня, 2014 - 10:55:43 - перейти к сообщению
Webtest пишет:
=?windows-1251?B?ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?=

windows-1251 - кодировка cp1251
B - означает что данные закодированние в base64
ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?= - данные
5. Webtest - 20 Июня, 2014 - 11:02:01 - перейти к сообщению
esterio пишет:
Webtest пишет:
=?windows-1251?B?ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?=

windows-1251 - кодировка cp1251
B - означает что данные закодированние в base64
ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?= - данные

Да, это я уже читал. Пробовал такой код:
$replaceArr = array('Subject: =?windows-1251?B?', '?=');
$strReplace = str_replace($replaceArr, '', $subject);
echo base64_decode($strReplace);
Выводит какие-то ромбики: ����� ���� � ������ ������� ��������
6. LIME - 20 Июня, 2014 - 11:02:06 - перейти к сообщению
cp866
cp1251 это выдумки MySql
(Добавление)
так ты кодировку страницы так же приведи в порядок
чтоб соответствовало
в браузере прям в настройках можно
7. Webtest - 20 Июня, 2014 - 11:07:43 - перейти к сообщению
LIME пишет:
cp866
cp1251 это выдумки MySql
(Добавление)
так ты кодировку страницы так же приведи в порядок
чтоб соответствовало
в браузере прям в настройках можно

А что именно сделать? У меня кодировка страницы стояла ISO, переставил на UTF-8, весь русский текст на странице превратился в знаки вопросов - ромбы остались, пределал в виндовс-1251, русский текст перевелся втакеи знаки вопросов, опять же ромбы на месте. В чем проблема не понимаю.
8. LIME - 20 Июня, 2014 - 11:10:11 - перейти к сообщению
нучтотакоенепонятно!
PHP:
скопировать код в буфер обмена
  1. echo base64_decode('ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?=');//Новая тема в форуме Вопросы новичков
9. Webtest - 20 Июня, 2014 - 11:16:55 - перейти к сообщению
LIME пишет:
нучтотакоенепонятно!
PHP:
скопировать код в буфер обмена
  1. echo base64_decode('ze7i4P8g8uXs4CDiIPTu8PPs5SDC7u/w7vH7IO3u4uj36u7i?=');//Новая тема в форуме Вопросы новичков

Выводит ромбы: ����� ���� � ������ ������� ��������
10. DelphinPRO - 20 Июня, 2014 - 11:31:37 - перейти к сообщению
ну прогони через iconv что ли )
11. Webtest - 20 Июня, 2014 - 11:40:00 - перейти к сообщению
DelphinPRO пишет:
ну прогони через iconv что ли )

Подскажите как?
Собственно код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $strStart =  strpos($head, 'Subject: =?');
  3. $subStart = substr($head, $strStart);
  4. $strEnd = strpos($subStart, '?=');
  5. $subject = substr($head, $strStart, $strEnd+2); // До этой строки выбираю нужную строку
  6. $replaceArr = array('Subject: =?windows-1251?B?', '?=');
  7. $strReplace = str_replace($replaceArr, '', $subject); // Убираю тип кодировки, чтобы получилась чистая строка для декодирования
  8. $test = iconv("Windows-1251", "UTF-8", $strReplace); //
  9. echo base64_decode($test);
  10.  

Что не так-то?
12. LIME - 20 Июня, 2014 - 11:40:53 - перейти к сообщению
строку данных перехреначил и спрашивает что нетак
13. Webtest - 20 Июня, 2014 - 11:41:09 - перейти к сообщению
Ниндзя
(Добавление)
Как её захреначить назад?
14. LIME - 20 Июня, 2014 - 11:44:23 - перейти к сообщению
а ты глаза распахни и посмотри какая строка у меня в коде
15. DelphinPRO - 20 Июня, 2014 - 11:44:53 - перейти к сообщению
сначала раскодируй, потом конвертируй кодировку )

 

Powered by ExBB FM 1.0 RC1