Misplaced Pages

UTF-9 and UTF-18: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editContent deleted Content addedVisualWikitext
Revision as of 07:04, 2 April 2006 edit206.124.149.117 (talk) Technical details: grammar cleanup and UTF-18 explanation← Previous edit Latest revision as of 15:59, 25 November 2018 edit undo174.254.130.36 (talk) Now redirects to the specific section for this RFC.Tag: Redirect target changed 
(96 intermediate revisions by 72 users not shown)
Line 1: Line 1:
#REDIRECT ]
'''UTF-9''' and '''UTF-18''' (9- and 18-] ], respectively) are two specifications for encoding unicode on systems where the ] (nine bit group) is a better fit for the native word size than the ] such as the ]. Both encodings were specified in RFC 4042 which was released on ] ]. The encodings suffer from a number of flaws and it is confirmed by their author that they were intended as a joke. However unlike some of the "specifications" given in other ]s they are actually technically possible to implement, and have in fact been implemented in ] assembly language. They are not endorsed by the ].


{{Rcat shell|
==Technical details==
{{R to related topic}}
UTF-9 uses a system of putting an octet in the low 8 ] of each nonet and using the high bit to indicate continuation. This means that ] and ] characters take one nonet each, the rest of the ] characters take two nonets each and non BMP code points take 3. Code points that require multiple nonets are stored starting with the most significant non-zero octet.
{{Rwh}}
}}


{{DEFAULTSORT:Utf-09 And Utf-18}}
UTF-18 is the simpler of the two encodings, and uses a single 18 bit integer per code point. This allows representation of 4 planes which are mapped to the 4 planes currently used by ] (planes 0-2 and 14). This means that the two private use planes (15 and 16) and the currently unused planes (3-13) are not supported. The UTF-18 specification doesn't say why they didn't allow surrogates to be used for these code points though when talking about UTF-16 earlier in the RFC it says "This transformation format requires complex surrogates to represent code points outside the BMP". After complaining about their complexity it would have looked a bit hypocritical to use surrogates in their new standard. It is unlikely that planes 3-13 will be assigned by ] any time in the forseeable future. Thus, UTF-18, like UCS-2 and UCS-4, guarantees a fixed width for all characters (although not necessary for all glyphs).
]

]
==Problems==
Both specifications suffer from the problem that standard octet-based communication protocols are simply not built around nonets, and so it would not be possible to exchange text in these formats without further encoding or specially designed protocols. This alone would probably be sufficient reason to consider their use impractical in most cases. However, this would be less of a problem with pure bit-stream communication protocols.

Furthermore, both UTF-9 and UTF-18 have specific problems of their own. UTF-9 requires special care when searching, as a shorter sequence can be found at the end of a longer sequence. This means that it is necessary to search backwards in order to find the start of the sequence. UTF-18 cannot represent all Unicode code points (although it can represent all the planes that currently have non-private use code point assignments) making it a bad choice for a system that may develop in the future.

==External links==
* RFC 4042: UTF-9 and UTF-18 Efficient Transformation Formats of Unicode

]
]
]

Latest revision as of 15:59, 25 November 2018

Redirect to:

This page is a redirect. The following categories are used to track and monitor this redirect:
  • To a related topic: This is a redirect to an article about a similar topic.
    • Redirects from related topics are different than redirects from related words, because a related topic is more likely to warrant a full and detailed description in the target article. If this redirect's subject is notable, then also tag it with {{R with possibilities}} and {{R printworthy}}.
  • With history: This is a redirect from a page containing substantive page history. This page is kept as a redirect to preserve its former content and attributions. Please do not remove the tag that generates this text (unless the need to recreate content on this page has been demonstrated), nor delete this page.
    • This template should not be used for redirects having some edit history but no meaningful content in their previous versions, nor for redirects created as a result of a page merge (use {{R from merge}} instead), nor for redirects from a title that forms a historic part of Misplaced Pages (use {{R with old history}} instead).
When appropriate, protection levels are automatically sensed, described and categorized.
Categories: