Article View: pl.comp.lang.php
Article #340Re: Konwersja znakow z roznym kodowaniem
From: Andrzej Kaczmarek
Date: Mon, 20 Aug 2001 10:21
Date: Mon, 20 Aug 2001 10:21
51 lines
2779 bytes
2779 bytes
Jędrzej Danko napisał(a):
> Mam problem z roznymi kodowaniami
> Tworze aplikacje - klienta poczty e-mail.
> Jako domyslne na stronie (w naglowkach META) mam standard kodowania
> iso-8859-1. Niestety, poczta przychodzi w najrozniejszych kodowaniach
> (najczesciej to windows-1250 i iso-8859-2). Wyswietlana wiadomosc zamienia
> sie w "niezla kaszanke" Jak tego uniknac?
#v+
function cp1250toiso88592($string)
{
return strtr($string, "ąś¤Ź¨ăཥŠä˘žŤ", "ąśĄĆĘŁŃÓŚŻŹąćęłńóśżź");
}
#v-
> Inna sprawa. Gdy odczytuje naglowki listu, przetwarzam takze liste
> odbiorcow. Niektorzy maja, w sekcji 'personal', polskie znaki, ktore pozniej
> na stronie wygladaja tak: =?iso-8859-2?Q?J=EAdrzej_Danko?= zamiast Jedrzej
> Danko. Czy da sie to jakos obejsc? (najlepiej by bylo, aby pojawily sie
> prawidlowe znaki w prawidlowym standardzie kodowania)
Na przykład tak:
#v+
# dekoduje quoted-printable i base64 z automatycnym rozpoznaniem formatu
function auto_decode($string) {
if (preg_match("/\=\?(.*?)\?b\?/i", $string)) $string = b64_decode($string);
if (preg_match("/\=\?(.*?)\?q\?/i", $string)) $string = qp_decode($string);
return $string;
}
# dekoduje quoted-printable
function qp_decode($string) {
$string = preg_replace("/\=\?(.*?)\?q\?(.*?)\?\=/ieU", "quoted_printable_decode('\\2')", $string);
$string = ereg_replace("_", " ", $string);
$string = stripslashes($string);
return $string;
}
# dekoduje base64
function b64_decode($string) {
$string = preg_replace("/\=\?(.*?)\?b\?(.*?)\?\=/ieU", "base64_decode('\\2')", $string);
return $string;
}
echo auto_decode("=?iso-8859-2?Q?J=EAdrzej_Danko?=");
#v-
--
pozdrawiam,
Andrzej
Technical Details
Message-ID:
<slrn.pl.9o1p69.1a4.ak@AndrzejKaczmarek>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!newsfeed.trzebnica.net!news.trzebnica.net!news.tpi.pl!akReferences:
<9lqmsj$s88$1@news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!newsfeed.trzebnica.net!news.trzebnica.net!news.tpi.pl!ak
From: Andrzej Kaczmarek <ak@wroc.vulcan.pl>
Newsgroups: pl.comp.lang.php
Subject: Re: Konwersja znakow z roznym kodowaniem
Date: 20 Aug 2001 10:21:30 GMT
Organization: Domek Inc.
Lines: 51
Message-ID: <slrn.pl.9o1p69.1a4.ak@AndrzejKaczmarek>
References: <9lqmsj$s88$1@news.tpi.pl>
NNTP-Posting-Host: 213.76.92.230
Mime-Version: 1.0
X-Trace: news.tpi.pl 998302890 9465 213.76.92.230 (20 Aug 2001 10:21:30 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: 20 Aug 2001 10:21:30 GMT
X-Face: ^nFd*Q%`ZU;1pfb{!7P^!Gf!Yp%bzmIXRr;83QtK-iNtJhJJlo2@=td+0*MA;8j{Oz9Sd"sZ2m&5P7mt+T?}5gREL{WW$'1$K!f%$5@g2TBqM-xbu90gbm>3'-JeuKlg}p]NNw*9f&m9EN%Eq#"#vWuEED|?%8w>;}-4
X-Posting-Agent: Hamster/1.3.22.101
User-Agent: slrn/0.9.7.0 (pl-1.1.1w) (Win32)
Cancel-Lock: sha1:FXGhu6de7ire9PgZtOPaerVcOHg=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit