UTF-7
UTF-7 (ang. 7-bit Unicode Transformation Format) – sposób zapisu tekstu w formacie Unicode przy użyciu zmiennej liczby znaków ASCII, nadający się na przykład do użycia w wiadomościach MIME.
Wiadomości e-mail wysyłane przy użyciu MIME muszą być zapisane wyłącznie przy użyciu kodów ASCII, więc każdy 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ślone. 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.
Opis
[edytuj | edytuj kod]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 +-
.
Przykłady
[edytuj | edytuj kod]- "
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 to0x00A3
. 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).
Zobacz też
[edytuj | edytuj kod]Linki zewnętrzne
[edytuj | edytuj kod]- Using International Characters in Internet Mail. imc.org. [zarchiwizowane z tego adresu (2007-10-26)].
- D. Goldsmith , M. Davis , UTF-7 - A Mail-Safe Transformation Format of Unicode, RFC 1642, IETF, lipiec 1994, DOI: 10.17487/RFC1642, ISSN 2070-1721, OCLC 943595667 (ang.).
- D. Goldsmith , M. Davis , UTF-7 A Mail-Safe Transformation Format of Unicode, RFC 2152, IETF, maj 1997, DOI: 10.17487/RFC2152, ISSN 2070-1721, OCLC 943595667 (ang.).