| advertise add site services publishers database health videos | ![]() | about toolbar stats live show health store more stuff JOIN/LOGIN |
ASM Undergraduate Teaching Fellowship (ASM-UTF) asm.org | Videoklemmer av forskjellig drift som utf?ret av ? bruke Hysteroscope layyous.com | Why does Joomla! 1.5 use utf-8 encoding? dentist-houston.org |
UTF-7 (7-bit Unicode Transformation Format) is a variable-length character encoding that was proposed for representing Unicode-encoded text using a stream of ASCII characters, for example for use in Internet e-mail messages. The basic Internet e-mail standard SMTP specifies that the transmission format is US-ASCII and does not allow byte values above the ASCII range. MIME provides a way to specify the character set allowing for use of other character sets including UTF-8 and UTF-16. However the underlying transmission infrastructure is still not guaranteed to be 8-bit clean and therefore content transfer encodings have to be used with them. Unfortunately base64 has the problem of making even US-ASCII characters unreadable in non-mime clients and UTF-8 combined with quoted-printable produces a very inefficient format requiring 6–9 bytes for non-ASCII characters from the BMP and 12 bytes for characters outside the BMP. Provided certain rules are followed during encoding, UTF-7 can be sent in e-mail without using a separate MIME transfer encoding, but still must be explicitly identified as the text character set. In addition, if used within e-mail headers such as "Subject:", UTF-7 must be contained in MIME encoded words identifying the character set. Since encoded words force use of either quoted-printable or base64, UTF-7 was designed to avoid using the = sign as an escape character to avoid double escaping when it is combined with quoted-printable. UTF-7 is generally not used as a native representation within applications as it is very awkward to process. Despite its size advantage over the combination of UTF-8 with either quoted-printable or base64, the Internet Mail Consortium recommends against its use.[1] 8BITMIME has also been introduced, which reduces the need to encode messages in a 7-bit format. A modified form of UTF-7 is currently used in the IMAP e-mail retrieval protocol for mailbox names.[2]
[edit] DescriptionUTF-7 was first proposed as an experimental protocol in RFC 1642, A Mail-Safe Transformation Format of Unicode. This RFC has been made obsolete by RFC 2152, an informational RFC which never became a standard. As RFC 2152 clearly states, the RFC "does not specify an Internet standard of any kind". Despite this RFC 2152 is quoted as the definition of UTF-7 in the IANA's list of charsets. Neither is UTF-7 a Unicode Standard. The Unicode Standard 5.0 only lists UTF-8, UTF-16 and UTF-32. There is also a modified version, specified in RFC 2060, which is sometimes identified as UTF-7. Some characters can be represented directly as single ASCII bytes. The first group is known as "direct characters" and contains all 62 alphanumeric characters and 9 symbols: Space, tab, carriage return and line feed may also be represented directly as single ASCII bytes. However, if the encoded text is to be used in e-mail, care is needed to ensure that these characters are used in ways that do not require further content transfer encoding to be suitable for e-mail. The plus sign (
[edit] Examples
[edit] Algorithm for manually encoding and decoding UTF-7[edit] EncodingFirst an encoder must decide which characters to represent directly in ASCII form and which to place in blocks of Unicode characters, A simple encoder may encode all characters it considers safe for direct encoding directly. However the cost of coming out of a unicode block to represent a single character and then going directly back in is 3 to 3⅔ bytes, this is more than the 2⅔ bytes needed to represent such a character as a part of the unicode sequence. Once the unicode sequences are decided on they must be encoded using the following procedure then surrounded by the appropriate delimiters. We will use the £† (U+00A3 U+2020) character sequence as an example
[edit] DecodingFirst the message must be separated into plain ASCII text and Unicode blocks as mentioned in the description section, once this is done the Unicode blocks must be decoded with the following procedure (using the result of the encoding example above as our example)
[edit] SecurityUTF-7 allows multiple representations of the same source string by shifting in and out of the base 64 mode multiple times. As such applications should not attempt to process text in UTF-7. Internet Explorer may incorrectly guess that a web page is encoded in UTF-7. This could mean a web page includes strings of user input which have not been properly validated against UTF-7, allowing a cross-site scripting attack. [3] [edit] Not yet developed: UTF-6 and UTF-5Some proposals have been made for a UTF-6 and UTF-5 for radio telegraphy environments,[4][5] however no formal UTF standard has been formalized as of 2006. These proposals are not related to Punycode. [edit] References
[edit] See also
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ↑ top of page ↑ | about thumbshots |