Does Python handle astral characters?

Instead of blowing up when we encounter misplaced astral characters, should we just skip them?

We don't need an else if for 32-bit codes if charCodeAt is never going to return those.  My understanding is that 32-bit Unicode characters will show up as astral characters in JavaScript.

```
for (var i = 0; i < s.length; i++) {
  code = s.charCodeAt(i);
  if (code <= 127) asc += s[i];
  else if (code <= 0xFF) asc += "\\x" + code.toString(16);
  else if (0xD800 <= code && code <= 0xDBFF) { // UCS-2 for the astral chars
    var lo = s.charCodeAt(i + 1);
    if (!isNaN(lo) && 0xDC00 <= lo && lo <= 0xDFFF) {
      code = ((code - 0xD800) * 0x400) + (lo - 0xDC00) + 0x10000;
      asc += "\\U" + ("000" + code.toString(16)).slice(-8);
      i++;
    }
    // else High surrogate not followed by low surrogate, skip
  }
  else if (code <= 0xFFFF) asc += "\\u" + ("0" + code.toString(16)).slice(-4);
}
```