A simple and working solution for latin encoding supports Slovak, Czech, Russian ect.
<?php iconv("utf-8", "windows-1250", $SomeWeirdText); ?>
specially for those who strugle with imap_mime_header_decode
iconv_mime_decode
(PHP 5)
iconv_mime_decode — Bir MIME başlık alanının kodunu çözer
Açıklama
string iconv_mime_decode
( string
$kodlanmış_başlık
[, int $kip = 0
[, string $karküm = ini_set("iconv.internal_encoding")
]] )Bir MIME başlık alanının kodunu çözer.
Değiştirgeler
-
kodlanmış_başlık -
Bir dizge olarak kodlanmış başlık.
-
kip -
kipdeğiştirgesi, işlev bozuk bir MIME başlık alanı saptadığı takdirde işlevin davranışını belirler. Aşağıdaki değerleri bir bit maskesi olarak belirtebilirsiniz:iconv_mime_decode() tarafından desteklenen bit maskeleri Değer Sabit Açıklama 1 ICONV_MIME_DECODE_STRICT Belirtilirse, başlık, » RFC2047'de tanımlanan standartlarla tam uyumlu kodlanır. Bu seçenek öntanımlı olarak kapalıdır, çünkü belirtime uymayan ve doğru MIME başlıkları üretmeyen pek çok kullanıcı eposta istemcisi var. 2 ICONV_MIME_DECODE_CONTINUE_ON_ERROR Belirtilirse, iconv_mime_decode_headers() işlevi yazım hatalarını yoksayıp belirtilen başlığı işlemeye devam etmeye çalışır. -
karküm -
İsteğe bağlı
karkümdeğiştirgesi elde edilecek dizgenin karakter kümesini belirler. Belirtilmezse, dizgenin karakter kodlamasının iconv.internal_encoding yönergesinde belirtilen kodlama olacağı varsayılır.
Dönen Değerler
Başarı durumunda kodu çözülmüş MIME alanı, aksi takdirde
FALSE döner.
Örnekler
Örnek 1 - iconv_mime_decode() örneği
<?php
// Sonuç: "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
0, "ISO-8859-1");
?>
Ayrıca Bakınız
- iconv_mime_decode_headers() - Bir defada birden fazla MIME başlık alanını çözümler
- mb_decode_mimeheader() - MIME başlık alanındaki dizgeyi dönüştürür
- imap_mime_header_decode() - MIME başlık elemanlarının kodlamasını açar
- imap_base64() - Base64 kodlu dizgeyi 8 bitlik dizgeye dönüştürür
- imap_qprint() - Bir 7 bitlik dizgeyi 8 bitlik dizgeye dönüştürür
koronci at aol dot com ¶
5 months ago
dido dot sevilla at gmail dot com ¶
8 years ago
In PHP versions that have imap_mime_decode built in, it's possible to emulate the operation of this function:
<?php
function iconv_mime_decode($str, $mode=0, $charset="UTF-8")
{
$data = imap_mime_header_decode($str);
if (count($data) > 0) {
// because iconv doesn't like the 'default' for charset
$charset = ($data[0]->charset == 'default') ? 'ASCII' : $data[0]->charset;
return(iconv($charset, $charset, $data[0]->text));
}
return("");
}
?>
I've only tried to use this code snippet to decode ISO-2022-JP messages to UTF-8, but I see no reason why it shouldn't work in other cases.
