title: How to get a character from its UTF-16 code points in Python 3?
body: <p>I have a list of UTF-16 code points that I need to convert to the actual characters they represent programmatically. This seems unbelievably hard to do in Python 3.</p>
  
  <p>For example, I have the numbers 55357 and 56501 for one character, which I know is this banknote emoji:  But I have no idea how to convert that in Python. I first tried <code>chr(55357) + chr(56501)</code>, but Python seems to assume that it is UTF-8 encoded and thus gives me broken Unicode.</p>
  
  <p>I then tried re-encoding the string, but since it's broken UTF-8, it gives me what seems to be broken UTF-16. If I tell it to leave it alone with <code>(chr(55357) + chr(56501)).encode('utf-8', 'surrogatepass')</code>, I can actually get a valid bytes of the character, but it's encoded in...CESU-8, for reasons I cannot yet grasp. This is not an encoding Python supports natively, and I can't find a codec to convert it.</p>
  
  <p>I think I could probably write these to the disk and then read them with the right encoding, but that sounds really terrible.</p>
  
  <p>Is there a reasonable way to do this in Python 3?</p>