What is the encoding of Chinese characters on Wikipedia?

100,291

Solution 1


>>> c='\xe7\x9a\x84'.decode('utf8')
>>> c
u'\u7684'
>>> print c
的


though Unicode encodes it in 16 bits, utf8 breaks it down to 3 bytes.

Solution 2

The header of a wikipedia page includes this:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

So the page is UTF-8.

Solution 3

The example you give is an IRI.

IRIs use the UTF8 encoding. UTF8 implements unicode, and in unicode, each character has a codepoint, that is between 0x4E00 and 0x9FFF (2 bytes) for all chinese characters.

But UTF8 doesn't encode characters by just storing their codepoint (UTF32 does that). Instead, it uses a more complex standard, that makes all chinese ideograms 2 or 3 bytes long.

Share:
100,291
laurent
Author by

laurent

Updated on May 09, 2020

Comments

  • laurent
    laurent almost 4 years

    I was looking at the encoding of Chinese characters on Wikipedia and I'm having trouble figuring out what they are using. For instance "的" is encoded as "%E7%9A%84" (see here). That's three bytes, however none of the encodings described on this page uses three bytes to represent Chinese characters. UTF-8 for instance uses 2 bytes.

    I'm basically trying to match these three bytes to an actual character. Any suggestion on what encoding it could be?

  • laurent
    laurent about 13 years
    Thanks, I assumed UTF-8 was using the same encoding as unicode. That makes sense now.
  • sleske
    sleske almost 13 years
    @Laurent: No, because (please repeate after me) Unicode is not an encoding. Unicode is a standard for representing text, and encoding (actually, several encodings) is part of the standard.
  • sleske
    sleske almost 13 years
    @Laurent: You may be confused by the fact that in UTF-32 (which is one encoding) characters are in fact encoded by their codepoint number (i.e. the encoding is trivial). But there are other encodings, and UTF-32 is acutally not used very often.
  • hAcKnRoCk
    hAcKnRoCk over 7 years
    charset is misleading. It means "encoding" and not character sets, which are often confused together