Re: UTF-8 ill-formed question

From: <vanisaac_at_boil.afraid.org>
Date: Tue, 11 Dec 2012 11:50:20 -0800

From: James Lin <James_Lin_at_symantec.com>
> Hi
> Does anyone know why ill-form occurred on the UTF-8? besides it doesn't follow > the pattern of UTF-8 byte-sequences, i just wondering how or why?
> If i have a code point: U+4E8C or "二"
> In UTF-8, it's "E4 BA 8C" while in UTF-16, it's "4E8C". Where is this "BA"
> comes from?
>
> thanks
> -James

Each of the UTF encodings represents the binary data in different ways. So we
need to break the scalar value, U+4E8C, into its binary representation before
we proceed.

4E8C -> 0100 1110 1000 1100

Then, we need to look up the rules for UTF-8. It states that code points
between U+800 and U+FFFF are encoded with three bytes, in the form 1110xxxx
10xxxxxx 10xxxxxx. So plugging in our data, we get

        4 E 8 C
      0100 1110 10-00 1100
      |||| ||||// \||||
+ 1110xxxx 10xxxxxx 10xxxxxx

= 11100100 10111010 10001100
or E 4 B A 8 C

-Van Anderson
Received on Tue Dec 11 2012 - 13:57:27 CST

This archive was generated by hypermail 2.2.0 : Tue Dec 11 2012 - 13:57:35 CST