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

Quoted-Printable

Termin Definicja
Quoted-Printable

Quoted-Printable to metoda kodowania tekstu z użyciem znaków ASCII do zapisu wartości spoza tego zakresu.

Quoted-Printable w standardzie MIME

Quoted-Printable jest kodowaniem transportowym używanym w standardzie MIME do przedstawiania danych tekstowych za pomocą oktetów ASCII. Jego zastosowanie opisuje RFC 2045, gdzie Quoted-Printable występuje jako jeden z mechanizmów Content-Transfer-Encoding. Metoda została zaprojektowana przede wszystkim dla treści, które w dużej części składają się ze znaków drukowalnych ASCII, ale zawierają również pojedyncze bajty wymagające specjalnego zapisu. Dzięki temu wiadomość może bezpiecznie przejść przez starsze systemy pocztowe, które nie obsługiwały dowolnych danych 8-bitowych.

Quoted-Printable nie określa sposobu interpretowania znaków przez człowieka ani nie jest samodzielnym kodowaniem znaków, takim jak UTF-8. Najpierw tekst może zostać zapisany w określonym kodowaniu znaków, na przykład UTF-8, a dopiero uzyskane bajty mogą zostać przedstawione w formacie Quoted-Printable. Odbiorca wykonuje operację odwrotną: dekoduje zapis transportowy, a następnie interpretuje odzyskane bajty zgodnie z informacją o zestawie znaków, często podaną w nagłówku MIME, na przykład jako charset=UTF-8.

Zapis bajtów, znak równości i łamanie wierszy

Podstawowa zasada Quoted-Printable polega na pozostawieniu większości bezpiecznych znaków bez zmian. Bajt wymagający zakodowania zapisuje się jako znak równości oraz dwie cyfry szesnastkowe oznaczające wartość tego bajtu. Przykładowo bajt o wartości szesnastkowej 20, odpowiadający spacji, można zapisać jako =20, a znak końca linii w klasycznej reprezentacji MIME jako =0D=0A. Sam znak równości ma znaczenie specjalne, więc jego dosłowną wartość zapisuje się jako =3D. Litery A–F w zapisie szesnastkowym mogą występować w wielkiej postaci, a dekoder powinien poprawnie obsługiwać zapis zgodny z regułami standardu.

Wiersz zakodowanej treści nie powinien przekraczać 76 znaków, nie licząc końcowej sekwencji CRLF. Jeżeli logiczna linia tekstu jest dłuższa, nadawca może zastosować miękkie łamanie wiersza: na końcu fizycznego wiersza umieszcza znak równości, po którym następuje CRLF. Sekwencja = wraz z końcem wiersza nie oznacza dodatkowego znaku w odtwarzanym tekście. Dekoder usuwa ją i łączy następną linię z poprzednią. To odróżnia miękkie łamanie od rzeczywistego końca akapitu. Zwykłe końce wierszy w treści tekstowej są częścią danych i nie powinny być przypadkowo usuwane.

Spacje i tabulatory znajdujące się na końcu fizycznego wiersza powinny być zakodowane, ponieważ część systemów pośredniczących może je obcinać. W przeciwnym razie po transmisji treść może różnić się od oryginału. W praktyce generator Quoted-Printable musi także pilnować, aby przypadkowa sekwencja znaków przypominająca kodowanie, lecz niepoprawna składniowo, nie powodowała niejednoznaczności podczas odczytu.

Tekst UTF-8 a kodowanie Quoted-Printable

Polskie znaki nie są w Quoted-Printable zapisywane według ich nazw ani bezpośrednio jako symbole Unicode. Jeżeli wiadomość używa UTF-8, każdy znak jest najpierw zamieniany na odpowiednią sekwencję bajtów UTF-8. Przykładowo litera „ą” jest reprezentowana w UTF-8 przez dwa bajty: C4 i 85, dlatego w treści Quoted-Printable może zostać zapisana jako =C4=85. Zapis taki nie oznacza, że Quoted-Printable samo rozpoznaje język polski; informacja o UTF-8 musi wynikać z deklaracji typu MIME lub innego kontekstu wiadomości.

W nagłówku wiadomości można spotkać zapis zbliżony do Quoted-Printable, lecz należy odróżnić go od kodowania treści. RFC 2047 definiuje tak zwane encoded-word, używane między innymi w nagłówkach Subject i nazwach nadawcy. W tym mechanizmie litera Q ma odrębne reguły: między innymi znak podkreślenia może oznaczać spację, a niektóre znaki są zapisywane zgodnie z ograniczeniami właściwymi dla nagłówków. Nie wolno bez sprawdzenia zamieniać dekodera Quoted-Printable treści na dekoder encoded-word z nagłówka, ponieważ są to dwa różne konteksty MIME.

Quoted-Printable nie szyfruje danych i nie zapewnia poufności. Po dekodowaniu można odzyskać pierwotne bajty, a sam zapis często zwiększa rozmiar wiadomości, szczególnie wtedy, gdy duża część danych wymaga formy =XX. Metoda jest korzystna dla tekstu zawierającego głównie ASCII oraz niewielką liczbę bajtów spoza bezpiecznego zakresu. Dla danych binarnych, obrazów i innych treści o dużej liczbie nieprzewidywalnych wartości zwykle stosuje się Base64, ponieważ Quoted-Printable nie zostało zoptymalizowane pod kątem takiego materiału.

Rozpoznawanie problemów z odczytem wiadomości

Nieprawidłowo wyświetlone polskie znaki, widoczne fragmenty takie jak =C4=85 albo tekst z przypadkowymi znakami równości mogą wskazywać na brak dekodowania warstwy MIME, błędną deklarację zestawu znaków albo uszkodzenie treści podczas transmisji. Sama obecność sekwencji =XX nie jest jeszcze błędem. Należy sprawdzić nagłówki Content-Transfer-Encoding, Content-Type i parametr charset, a następnie porównać dane przed i po dekodowaniu. Jeżeli nagłówek deklaruje quoted-printable, odbiorca powinien zamienić poprawne sekwencje szesnastkowe na bajty i usunąć miękkie łamania wierszy.

Typowe usterki powstają, gdy aplikacja traktuje treść Quoted-Printable jak zwykły tekst, usuwa wszystkie znaki równości albo zmienia końce wierszy przed dekodowaniem. Problem może również wystąpić po ręcznej edycji wiadomości, gdy usunięty zostanie końcowy znak równości oznaczający kontynuację linii. W przypadku analizy pliku pocztowego warto zachować oryginalną kopię, odczytać surowe nagłówki i sprawdzić, czy część MIME jest poprawnie oddzielona od nagłówków pustym wierszem. Dopiero po tej kontroli można ocenić, czy przyczyną jest błąd programu, niezgodność deklaracji czy rzeczywiste uszkodzenie danych.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a w ramach diagnostyki może pomóc ustalić, czy problem z wiadomością wynika z aplikacji pocztowej, ustawień systemu, uszkodzenia profilu użytkownika czy nieprawidłowego odczytu załączonej treści MIME.

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