Как декодировать строку?

PNS

Новичок
Как декодировать строку?

Мне функция
PHP:
imap_listmailbox
возвращает массив, который содержит такое:
&BCcENQRABD0EPgQyBDgEOgQ4-
(папка названа по-русски)
Какая функция превращает это в нормальный текст?
 

SiMM

Новичок
PNS, я конечно понимаю, что что такое UTF-16 ты не знаешь - но ведь попробовать декодировать первое и второе у тебя заняло бы гораздо меньше времени, чем ждать ответа в форуме?
 

PNS

Новичок
Originally posted by SiMM
PNS, я конечно понимаю, что что такое UTF-16 ты не знаешь - но ведь попробовать декодировать первое и второе у тебя заняло бы гораздо меньше времени, чем ждать ответа в форуме?
Я перепробовал мнного вариантов, но подобрать так и не смог. Может я делаю не так

$cod="&BCcENQRABD0EPgQyBDgEOgQ4";
$decod=iconv ( 'UTF-16', 'cp1251', $cod);
echo $decode ;
 

SiMM

Новичок
PNS, тебе же сказали вначале использовать imap_utf7_decode
 

PNS

Новичок
Originally posted by SiMM
PNS, тебе же сказали вначале использовать imap_utf7_decode
$box=substr($val , 51 );

$bb=imap_utf7_decode($box);
$b=iconv ( 'UTF-16', 'cp1251', $bb);
echo " <h1>$b</h1> <br> ";

Так тоже не проходит...
 

PNS

Новичок
Originally posted by SiMM
PHP:
<?var_dump(iconv('UTF-16','CP1251',imap_utf7_decode('&BCcENQRABD0EPgQyBDgEOgQ4-')))?>
Не понял.

$bb=imap_utf7_decode($box);
$b=iconv ( 'UTF-16', 'Windows1251', imap_utf7_decode($box) );

echo $b ;

делает то же самое - ничего не выводит.

-~{}~ 10.12.04 22:17:

Originally posted by PNS
Не понял.

$bb=imap_utf7_decode($box);
$b=iconv ( 'UTF-16', 'Windows1251', imap_utf7_decode($box) );

echo $b ;

делает то же самое - ничего не выводит.
Проше пардона, выводит, но не то -
а конструкция
var_dump(iconv ( 'UTF-16', 'Windows1251',
imap_utf7_decode($box) ));


дает такое.
(false) bool
Ане имена папок в почтовом ящике
 

SiMM

Новичок
Теперь читаем внимательно мануал по iconv и думаем, почему так происходит.
PS: надеюсь, тыкать носом не придётся.
 

PNS

Новичок
Originally posted by SiMM
Теперь читаем внимательно мануал по iconv и думаем, почему так происходит.
PS: надеюсь, тыкать носом не придётся.
...
Боюсь, что все-таки ридется.
Если строка &BCcENQRABD0EPgQyBDgEOgQ4- не пуста, то почему iconv возвращает false?

И совсем для меня не ясно, как получать сами декодированные строки..
 

Profic

just Profic (PHP5 BetaTeam)
var_dump(iconv('UTF-16','CP1251',imap_utf7_decode('&BCcENQRABD0EPgQyBDgEOgQ4-')));
var_dump(iconv('UTF-16','Windows1251',imap_utf7_decode('&BCcENQRABD0EPgQyBDgEOgQ4-')));
отличия найдешь сам или носом тыкать?
 

PNS

Новичок
Originally posted by Profic
var_dump(iconv('UTF-16','CP1251',imap_utf7_decode('&BCcENQRABD0EPgQyBDgEOgQ4-')));
var_dump(iconv('UTF-16','Windows1251',imap_utf7_decode('&BCcENQRABD0EPgQyBDgEOgQ4-')));
отличия найдешь сам или носом тыкать?
Видимо да, так как все отличие (в итоговом результате ) в том , что в одном случае выдается false , а в другом - string(0) ""
Но во-первых, почему так происходит, если исходная строка не пустая,
а во-вторых - как можно из того, что получилось вытащить то что нужно?

Кстати, чем все-таки отличаются CP1251 и Windows1251 ? Windows1251 - виндовая кодировка , а CP1251 - юниксовая?
 

SiMM

Новичок
Автор оригинала: PNS
Если строка &BCcENQRABD0EPgQyBDgEOgQ4- не пуста, то почему iconv возвращает false?
Цитата из мана
Returns the converted string or FALSE on failure.
1. PHP FAQ: Ничего не работает! Что делать??? - iconv(): Wrong charset, cannot convert from `UTF-16' to `Windows1251'
2. Кодировки Windows1251 не существует. Существует Windows-1251.
И НЕ ЗАЧЕМ ТАК ОРАТЬ!!!
 

PNS

Новичок

PNS

Новичок
Originally posted by SiMM
PNS, ну чего ты упёрся? Тебе уже всё объяснили, разжевали и в рот положили.

-~{}~ 13.12.04 16:31:

Преобразование в строку
Ну, конечно, если строка пустая, то и преобразуется в пустую.

$box=strval(substr($val , 51 ));
echo " $box ";
$b_name=iconv ( 'UTF-16', 'Windows-1251',
imap_utf7_decode($box) );
$b_name=strval($b_name);
echo " $b_name " ;
Но ведь исходная строка - непуста! Куда она могла пропасть?
 
Сверху