Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

RFC 2047 encoding

Termin Definicja
RFC 2047 encoding

Kodowanie z RFC 2047 stosuje się do pól nagłówka wymagających znaków spoza standardowego zestawu ASCII.

Jak RFC 2047 reprezentuje znaki spoza ASCII

RFC 2047 definiuje sposób zapisywania znaków spoza podstawowego zestawu ASCII w wybranych polach nagłówka wiadomości MIME. Dotyczy to między innymi polskich liter w temacie wiadomości, nazwach załączników oraz nazwach wyświetlanych nadawcy i odbiorcy. Sam nagłówek wiadomości musi zachować składnię zgodną z wcześniejszymi formatami poczty internetowej, dlatego znaki takie jak „ą”, „ę”, „ł” czy „€” nie są zwykle umieszczane w nim bezpośrednio. Zamiast nich używa się specjalnego fragmentu nazywanego encoded-word.

Podstawowa postać encoded-word wygląda tak: =?charset?encoding?encoded-text?=. Pole charset określa zestaw znaków, na przykład UTF-8 albo ISO-8859-2. Pole encoding wskazuje metodę przekształcenia danych. Litera B oznacza kodowanie Base64, a litera Q oznacza kodowanie zgodne z mechanizmem quoted-printable dostosowanym do nagłówków. Całość rozpoczyna się od =? i kończy sekwencją ?=, dzięki czemu program pocztowy może rozpoznać ją jako zakodowany fragment.

Metody B i Q w nagłówkach wiadomości

Metoda B służy do zapisania bajtów tekstu w formacie Base64. Jest wygodna, gdy tekst zawiera wiele znaków spoza ASCII albo gdy dane po konwersji nie składają się głównie ze znaków drukowalnych. Przykładowy nagłówek tematu może zawierać zapis Subject: =?UTF-8?B?VGVzdCB3aWFkb21vw6Yg?=. Odbiorca odczytuje informację o użyciu UTF-8, dekoduje Base64, a następnie interpretuje otrzymane bajty jako tekst. Zewnętrznie użytkownik widzi zwykły temat, a nie ciąg znaków technicznych.

Metoda Q jest podobna do quoted-printable, ale stosuje reguły właściwe dla nagłówków. Znak podkreślenia oznacza spację, natomiast inne bajty wymagające ucieczki zapisuje się jako =HH, gdzie HH jest dwucyfrową wartością szesnastkową. Przykładowo litera „ę” w UTF-8 zajmuje bajty C4 99, więc może zostać zapisana jako =C4=99. W encoded-word nie należy umieszczać dowolnych znaków interpunkcyjnych bez sprawdzenia reguł RFC 2047, ponieważ część z nich ma znaczenie składniowe albo może zostać błędnie zinterpretowana przez starszy program pocztowy.

Gdzie encoded-word może wystąpić i jakie ma ograniczenia

RFC 2047 pozwala stosować encoded-word w określonych elementach nagłówków. W polach typu *text może on reprezentować fragment tekstu, w komentarzach może zawierać opisową informację, a w polach typu phrase może zastępować słowo, na przykład w nazwie wyświetlanej osoby. Dzięki temu nagłówek From może przechowywać nazwę użytkownika z polskimi znakami, podczas gdy właściwy adres e-mail pozostaje zapisany jako adres ASCII. Encoded-word nie służy do kodowania części addr-spec, czyli samego adresu w rodzaju Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript., oraz nie powinien być używany jako zamiennik dowolnego fragmentu składni nagłówka.

Pojedynczy encoded-word nie może przekraczać 75 znaków, licząc wszystkie znaki delimitera, nazwę kodowania znaków, oznaczenie metody i zakodowaną treść. Dłuższy temat trzeba więc podzielić na kilka encoded-word rozdzielonych białymi znakami zgodnie z regułami MIME. Program odczytujący wiadomość powinien połączyć kolejne fragmenty w jeden tekst, ale nie wolno zakładać, że każdy nagłówek zawierający ciąg zaczynający się od =? jest poprawnym encoded-word. Błędny charset, niepoprawny Base64, uszkodzone sekwencje Q albo przekroczenie limitu długości mogą powodować pokazanie surowego zapisu, znaków zastępczych lub nieczytelnego tematu.

Rozpoznawanie problemów z RFC 2047 w komputerze

Objawy niepoprawnego dekodowania RFC 2047 obejmują między innymi widoczny tekst =?UTF-8?B?...?= zamiast normalnego tematu, polskie znaki zastąpione znakami zapytania oraz tzw. mojibake, czyli tekst odczytany przy użyciu niewłaściwego zestawu znaków. Przy analizie problemu trzeba porównać pełną treść nagłówka z wersją wyświetlaną przez klienta pocztowego. Należy sprawdzić, czy deklarowany charset odpowiada rzeczywistym bajtom, czy wybrano prawidłową metodę B albo Q, czy każdy fragment kończy się przez ?= oraz czy wiadomość nie została zmieniona przez filtr, bramkę lub program zapisujący nagłówki ponownie.

Sam RFC 2047 dotyczy nagłówków, a nie kodowania treści wiadomości. Treść tekstowa e-maila jest opisywana osobno, między innymi przez pola MIME takie jak Content-Type i Content-Transfer-Encoding. Dlatego poprawny encoded-word w polu Subject nie naprawi błędnego kodowania HTML lub tekstu znajdującego się w treści wiadomości. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, w tym diagnostyką problemów z konfiguracją klientów pocztowych oraz wyświetlaniem zakodowanych nagłówków.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę