2013-09-17 3 views
3

Есть ли способ декодировать эту строку ??Декодирование base64 string - php

Фактическая строка: 其他 語言 測試 - тестирование

base64 кодирование при отправке по почте в качестве предмета, как

<?php 
echo base64_decode('GyRCQjZCPjhsOEBCLDtuGyhCIC0gdGVzdGluZw=='); 
?> 
"= изо-2022-JP B GyRCQjZCPjhsOEBCLDtuGyhCIC0gdGVzdGluZw == =??"

Это базовый 64-кодированный код, я не смог его декодировать до фактической китайской строки. Поскольку он был закодирован с использованием «iso-2022-jp», я также попытался использовать сайт base64decode.org для декодирования этой строки, но я не удалось найти исходную строку, как я могу это сделать?

+1

пытались ли вы [mb_convert_encoding] (http://php.net/manual/en/function.mb-convert-encoding.php)? 'mb_convert_encoding (base64_decode ($ str));' –

+0

Это мой результат: '5YW25LuW6Kqe6KiA5ris6KmmIC0gdGVzdGluZw ==', и пока я декодирован, я получаю '其他 語言 測試 - тестирование', но при тестировании я не вижу исходного текста –

+0

@Steven Liao Я попробовал следующее: {mb_convert_encoding (base64_decode ($ str), iso-2022-jp);} result: ?? -? x – thuk

ответ

6

Использование iconv():

<?php 
$input = base64_decode('GyRCQjZCPjhsOEBCLDtuGyhCIC0gdGVzdGluZw==');//$BB6B>[email protected],;n(B - testing 
$input_encoding = 'iso-2022-jp'; 
echo iconv($input_encoding, 'UTF-8', $input); //其他語言測試 - testing 
?> 
+0

superb .. Got it .. Большое спасибо .. – thuk

+1

есть способ найти формат кодирования, указав эту строку как входную строку {$ str = '=? Iso-2022-jp? B? GyRCQjZCPjhsOEBCLDtuGyhCIC0gdGVzdGluZw ==? знак равно – thuk

1

Попробуйте сначала кодировать строку в UTF-8, а затем закодировать ее до основания 64. То же самое при декодировании, декодировать строку из base64, а затем из UTF-8. Это работает для меня:

php > $base = "其他語言測試 - testing"; 
php > $encoded = base64_encode(utf8_encode($base)); 
php > $decoded = utf8_decode(base64_decode($encoded)); 
php > echo ($decoded === $base) . "\n"; 
1 
+0

Я не конвертирую его, когда я отправляю почту с использованием Outlook и подчиняется символу chineses, когда Я читаю поток, который я получаю так, так как его декодировать, который присутствует в формате iso-2022-jp? – thuk

2

То, что вы смотрите на это кодирование заголовка MIME. Он может быть декодирован mb_decode_mimeheader() и сгенерирован mb_encode_mimeheader(). Например:

<?php 
mb_internal_encoding("utf-8"); 
$subj = "=?iso-2022-jp?B?GyRCQjZCPjhsOEBCLDtuGyhCIC0gdGVzdGluZw==?="; 
print mb_decode_mimeheader($subj); 
?> 

其他語言測試 - testing 

(. Вызов mb_internal_encoding() здесь необходим, так как содержание сюжетной линии не могут быть представлены во внутренней кодировке по умолчанию ISO8859-1)

+0

классный .. Это также отлично работает .. Большое спасибо – thuk

+0

да вы правы .. – thuk

Смежные вопросы