Search code examples
pythonunicodehexcodepoint

Convert from hex character to Unicode character in python


The hex string '\xd3' can also be represented as: Ó.

The easiest way I've found to get the character representation of the hex string to the console is:

print unichr(ord('\xd3'))

Or in English, convert the hex string to a number, then convert that number to a unicode code point, then finally output that to the screen. This seems like an extra step. Is there an easier way?


Solution

  • print u'\xd3'
    

    Is all you have to do. You just need to somehow tell Python it's a unicode literal; the leading u does that. It will even work for multiple characters.

    If you aren't talking about a literal, but a variable:

    codepoints = '\xd3\xd3'
    print codepoints.decode("latin-1")
    

    Edit: Specifying a specific encoding when printing will not work if it's incompatible with your terminal encoding, so just let print do encode(sys.stdout.encoding) automatically. Thanks @ThomasK.