UTF-7
Z Wikipedii
UTF-7 (ang. 7-bit Unicode Transformation Format) sposób zapisu tekstu w formacie Unicode przy użyciu zmiennej ilości znaków ASCII, nadający się na przykład do użycia w wiadomościach MIME.
Listy wysyłane przy użyciu MIME muszą być zapisane wyłącznie przy użyciu ASCII, więc każdy list używający bezpośrednio ośmio- lub szesnastobitowego unikodu (na przykład UTF-16) jest traktowany jako wadliwy. Unikod zapisany przy użyciu UTF-7 może być przesyłany bez użycia nagłówka Content-Transfer-Encoding (który specyfikuje sposób reprezentacji danych binarnych za pomocą tekstu ASCII), ale pod warunkiem, że kodowanie znaków zostanie jawnie okreśone. Dodatkowo, przy użyciu UTF-7 w nagłówkach (np. Subject:), należy wykorzystać Encoded-Word ze standardu MIME, żeby to ujawnić.
Główną wadą UTF-7 jest jego niewygodne przetwarzanie: większość znaków ASCII może kodować niemal dowolne znaki Unicode a każdy znak Unicode można zakodować na wiele sposobów (w zależności od sąsiednich znaków). Internet Mail Consortium zachęca do niestosowania UTF-7 w poczcie elektronicznej.
Zmodyfikowana postać UTF-7 jest używana przez protokół IMAP.
Spis treści |
[edytuj] Opis
Kodowanie UTF-7 zostało po raz pierwszy zdefiniowane w dokumencie RFC 1642 (A Mail-Safe Transformation Format of Unicode), który później został zastąpiony przez RFC 2152.
Znaki o kodach poniżej 0x80 (notacja szesnastkowa), w zakresie ASCII (z wyjątkiem znaku +) są zapisywane bez zmian. Każdy znak o kodzie powyżej 0x80 jest zapisywany przy użyciu następującej sekwencji:
- znak +
- reprezentacja UTF-16, zakodowana w zmodyfikowanym Base64
- znak - (ignorowany) lub znak nowej linii lub powrotu karetki (te nie są ignorowane).
Znak + jest zapisywany jako +-.
[edytuj] Przykłady
- "Hello, World!" przechodzi na "Hello, World!"
- "1 + 1 = 2" przechodzi na "1 +- 1 = 2"
- "£1" przechodzi na "+AKM-1". Pozycja znaku funta brytyjskiego w UTF-16 to 0x00A3. Zapis w zmodyfikowanym kodzie Base64:
- 0b000000 = 0 = 'A'
- 0b001010 = 10 = 'K'
- 0b0011[00] = 12 = 'M', przy czym ostatnie dwa bity oktetu są wypełnieniem (padding).
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- RFC 2152: A Mail-Safe Transformation Format of Unicode
- International Characters in Internet Mail