Jak odkodować tekst w postaci oto =BF=F3=B3w , czyli zakodowany w standardzie quoted printable


[PHP] Jak odkodować tekst w postaci "oto =BF=F3=B3w...", czyli zakodowany w standardzie quoted printable?

0x01 graphic

Chcesz odkodować tekst zawierający znaki złożone z kodów szesnastkowych poprzedzonych znakami równości, czyli zamienić tekst zakodowany w standardzie quoted printable na czytelny dla człowieka.

0x01 graphic

Bardzo często zachodzi konieczność zakodowania tekstu do standardu quoted printable, ponieważ wiele znaków (w tym polskie znaki narodowe) mogłby powodować problemy podczas przesyłania ich w systemach wykorzystujących np. 7-bitowe kodowanie. Stąd najczęściej spotkasz się z takim kodowaniem w poczcie elektronicznej.

Co zrobić aby odczytać dziwny ciąg znaków, wyglądających mniej więcej tak: "oto =BF=F3=B3w..." lub "=?ISO-8859-2?Q?=AFyczenia =A6wi=B1teczne?=". Jest na to prosty sposób...

Za pomocą funkcji quoted_printable_decode() odkodujmy pierwszy ciąg znaków:

<?

echo quoted_printable_decode("oto =BF=F3=B3w...");

?>

wynik: oto żółw...

Sprawdźmy co stanie się z drugim przykładem:

<?

echo quoted_printable_decode("=?ISO-8859-2?Q?=AFyczenia =A6wi=B1teczne?=");

?>

wynik: =?ISO-8859-2?Q?Życzenia Świąteczne?

Nie poszło zbyt dobrze, ponieważ prawdziwy ciąg znaków to "Życzenia Świąteczne" i nic więcej. Błąd wynika ze sposobu kodowania znaków w e-mailach. O ile z normalnym kodowaniem funkcja radzi sobie dobrze, to przy dodatkowych znakach sterujących, stosowanych w poczcie elektronicznej ma problemy.

Na początku i na końcu tematu w listach dodawane są znaki =? i ?=. Na początku dodawana jest również informacja o standardzie kodowania polskich znaków ISO-8859-2?Q?. Wystarczy wyciąć te informacje:

<?

$temat = "=?ISO-8859-2?Q?=AFyczenia =A6wi=B1teczne?=";

$temat = ereg_replace("^=\?","",$temat);

$temat = ereg_replace("\?=$","",$temat);

$temat = ereg_replace("ISO-8859-2\?Q\?","",$temat);

echo quoted_printable_decode($temat);

?>

wynik: Życzenia Świąteczne

Teraz działa poprawnie. W razie potrzeby można odczytać standard kodowania i przekonwertować ciąg znaków na inny standard polskich liter. Jeżeli chcesz dokładnie zgłębić sposoby kodowania quoted printable zapoznaj się z dokumentem RFC 2045

0x01 graphic

www.php.net/manual/en/function.quoted-printable-decode.php

RFC 2045



Wyszukiwarka

Podobne podstrony:
Jak zakodować tekst w standardzie quoted printable, który przydaje się podczas wysyłania listów
027 Jak wspaniała nasza postać (tekst)
1 Etapy pray nad rozumieniem pojęcia rymu 2 Jak uczyć char postaci
Jak napisać Charakterystykę postaci
Jak interpretować tekst, J.polski
Jak formatować tekst,?y po przekroczeniu określonej długości przechodził do nowej linii
jak przygotowac tekst humanistyczny do tlumaczenia, Filologia polska, Poetyka
Jak skladac tekst Komputer nie jest maszyna do pisania Wydanie 2
Jak zamienić tekst na grafikę, PHP Skrypty
tekst w postaci zakodowanej
Jak stworzyć tekst REM3FG7HLMSKPWQAAFA2WNZ7DTCJJOAWSCLLUAA
Jak składać tekst Komputer nie jest maszyną do pisania Wydanie 2
Jak skladac tekst Komputer nie jest maszyna do pisania Wydanie 2 jstko2
Jak skladac tekst Komputer nie jest maszyna do pisania Wydanie 2
Jak zmienić skina postaci
Jak stworzyć tekst
027 Jak wspaniała nasza postać (nuty)
Panie dobry jak chleb tekst
Jak kolorowy tekst

więcej podobnych podstron