Created
April 18, 2017 18:09
-
-
Save oliverroick/6347c473893d6c4286a1aafcb243b01c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import codepoints | |
points = ( | |
'\U0001F004', | |
'\U0001F0CF', | |
'\U0001F170-\U0001F171', | |
'\U0001F17E', | |
'\U0001F17F', | |
'\U0001F18E', | |
'\U0001F191-\U0001F19A', | |
'\U0001F1E6-\U0001F1FF', | |
'\U0001F201-\U0001F202', | |
'\U0001F21A', | |
'\U0001F22F', | |
'\U0001F232-\U0001F23A', | |
'\U0001F250-\U0001F251', | |
'\U0001F300-\U0001F320', | |
'\U0001F321', | |
'\U0001F324-\U0001F32C', | |
'\U0001F32D-\U0001F32F', | |
'\U0001F330-\U0001F335', | |
'\U0001F336', | |
'\U0001F337-\U0001F37C', | |
'\U0001F37D', | |
'\U0001F37E-\U0001F37F', | |
'\U0001F380-\U0001F393', | |
'\U0001F396-\U0001F397', | |
'\U0001F399-\U0001F39B', | |
'\U0001F39E-\U0001F39F', | |
'\U0001F3A0-\U0001F3C4', | |
'\U0001F3C5', | |
'\U0001F3C6-\U0001F3CA', | |
'\U0001F3CB-\U0001F3CE', | |
'\U0001F3CF-\U0001F3D3', | |
'\U0001F3D4-\U0001F3DF', | |
'\U0001F3E0-\U0001F3F0', | |
'\U0001F3F3-\U0001F3F5', | |
'\U0001F3F7', | |
'\U0001F3F8-\U0001F3FF', | |
'\U0001F400-\U0001F43E', | |
'\U0001F43F', | |
'\U0001F440', | |
'\U0001F441', | |
'\U0001F442-\U0001F4F7', | |
'\U0001F4F8', | |
'\U0001F4F9-\U0001F4FC', | |
'\U0001F4FD', | |
'\U0001F4FF', | |
'\U0001F500-\U0001F53D', | |
'\U0001F549-\U0001F54A', | |
'\U0001F54B-\U0001F54E', | |
'\U0001F550-\U0001F567', | |
'\U0001F56F-\U0001F570', | |
'\U0001F573-\U0001F579', | |
'\U0001F57A', | |
'\U0001F587', | |
'\U0001F58A-\U0001F58D', | |
'\U0001F590', | |
'\U0001F595-\U0001F596', | |
'\U0001F5A4', | |
'\U0001F5A5', | |
'\U0001F5A8', | |
'\U0001F5B1-\U0001F5B2', | |
'\U0001F5BC', | |
'\U0001F5C2-\U0001F5C4', | |
'\U0001F5D1-\U0001F5D3', | |
'\U0001F5DC-\U0001F5DE', | |
'\U0001F5E1', | |
'\U0001F5E3', | |
'\U0001F5E8', | |
'\U0001F5EF', | |
'\U0001F5F3', | |
'\U0001F5FA', | |
'\U0001F5FB-\U0001F5FF', | |
'\U0001F600', | |
'\U0001F601-\U0001F610', | |
'\U0001F611', | |
'\U0001F612-\U0001F614', | |
'\U0001F615', | |
'\U0001F616', | |
'\U0001F617', | |
'\U0001F618', | |
'\U0001F619', | |
'\U0001F61A', | |
'\U0001F61B', | |
'\U0001F61C-\U0001F61E', | |
'\U0001F61F', | |
'\U0001F620-\U0001F625', | |
'\U0001F626-\U0001F627', | |
'\U0001F628-\U0001F62B', | |
'\U0001F62C', | |
'\U0001F62D', | |
'\U0001F62E-\U0001F62F', | |
'\U0001F630-\U0001F633', | |
'\U0001F634', | |
'\U0001F635-\U0001F640', | |
'\U0001F641-\U0001F642', | |
'\U0001F643-\U0001F644', | |
'\U0001F645-\U0001F64F', | |
'\U0001F680-\U0001F6C5', | |
'\U0001F6CB-\U0001F6CF', | |
'\U0001F6D0', | |
'\U0001F6D1-\U0001F6D2', | |
'\U0001F6E0-\U0001F6E5', | |
'\U0001F6E9', | |
'\U0001F6EB-\U0001F6EC', | |
'\U0001F6F0', | |
'\U0001F6F3', | |
'\U0001F6F4-\U0001F6F6', | |
'\U0001F6F7-\U0001F6F8', | |
'\U0001F910-\U0001F918', | |
'\U0001F919-\U0001F91E', | |
'\U0001F91F', | |
'\U0001F920-\U0001F927', | |
'\U0001F928-\U0001F92F', | |
'\U0001F930', | |
'\U0001F931-\U0001F932', | |
'\U0001F933-\U0001F93A', | |
'\U0001F93C-\U0001F93E', | |
'\U0001F940-\U0001F945', | |
'\U0001F947-\U0001F94B', | |
'\U0001F94C', | |
'\U0001F950-\U0001F95E', | |
'\U0001F95F-\U0001F96B', | |
'\U0001F980-\U0001F984', | |
'\U0001F985-\U0001F991', | |
'\U0001F992-\U0001F997', | |
'\U0001F9C0', | |
'\U0001F9D0-\U0001F9E6', | |
'\U0001F004', | |
'\U0001F0CF', | |
'\U0001F18E', | |
'\U0001F191-\U0001F19A', | |
'\U0001F1E6-\U0001F1FF', | |
'\U0001F201', | |
'\U0001F21A', | |
'\U0001F22F', | |
'\U0001F232-\U0001F236', | |
'\U0001F238-\U0001F23A', | |
'\U0001F250-\U0001F251', | |
'\U0001F300-\U0001F320', | |
'\U0001F32D-\U0001F32F', | |
'\U0001F330-\U0001F335', | |
'\U0001F337-\U0001F37C', | |
'\U0001F37E-\U0001F37F', | |
'\U0001F380-\U0001F393', | |
'\U0001F3A0-\U0001F3C4', | |
'\U0001F3C5', | |
'\U0001F3C6-\U0001F3CA', | |
'\U0001F3CF-\U0001F3D3', | |
'\U0001F3E0-\U0001F3F0', | |
'\U0001F3F4', | |
'\U0001F3F8-\U0001F3FF', | |
'\U0001F400-\U0001F43E', | |
'\U0001F440', | |
'\U0001F442-\U0001F4F7', | |
'\U0001F4F8', | |
'\U0001F4F9-\U0001F4FC', | |
'\U0001F4FF', | |
'\U0001F500-\U0001F53D', | |
'\U0001F54B-\U0001F54E', | |
'\U0001F550-\U0001F567', | |
'\U0001F57A', | |
'\U0001F595-\U0001F596', | |
'\U0001F5A4', | |
'\U0001F5FB-\U0001F5FF', | |
'\U0001F600', | |
'\U0001F601-\U0001F610', | |
'\U0001F611', | |
'\U0001F612-\U0001F614', | |
'\U0001F615', | |
'\U0001F616', | |
'\U0001F617', | |
'\U0001F618', | |
'\U0001F619', | |
'\U0001F61A', | |
'\U0001F61B', | |
'\U0001F61C-\U0001F61E', | |
'\U0001F61F', | |
'\U0001F620-\U0001F625', | |
'\U0001F626-\U0001F627', | |
'\U0001F628-\U0001F62B', | |
'\U0001F62C', | |
'\U0001F62D', | |
'\U0001F62E-\U0001F62F', | |
'\U0001F630-\U0001F633', | |
'\U0001F634', | |
'\U0001F635-\U0001F640', | |
'\U0001F641-\U0001F642', | |
'\U0001F643-\U0001F644', | |
'\U0001F645-\U0001F64F', | |
'\U0001F680-\U0001F6C5', | |
'\U0001F6CC', | |
'\U0001F6D0', | |
'\U0001F6D1-\U0001F6D2', | |
'\U0001F6EB-\U0001F6EC', | |
'\U0001F6F4-\U0001F6F6', | |
'\U0001F6F7-\U0001F6F8', | |
'\U0001F910-\U0001F918', | |
'\U0001F919-\U0001F91E', | |
'\U0001F91F', | |
'\U0001F920-\U0001F927', | |
'\U0001F928-\U0001F92F', | |
'\U0001F930', | |
'\U0001F931-\U0001F932', | |
'\U0001F933-\U0001F93A', | |
'\U0001F93C-\U0001F93E', | |
'\U0001F940-\U0001F945', | |
'\U0001F947-\U0001F94B', | |
'\U0001F94C', | |
'\U0001F950-\U0001F95E', | |
'\U0001F95F-\U0001F96B', | |
'\U0001F980-\U0001F984', | |
'\U0001F985-\U0001F991', | |
'\U0001F992-\U0001F997', | |
'\U0001F9C0', | |
'\U0001F9D0-\U0001F9E6', | |
'\U0001F385', | |
'\U0001F3C2-\U0001F3C4', | |
'\U0001F3C7', | |
'\U0001F3CA', | |
'\U0001F3CB-\U0001F3CC', | |
'\U0001F442-\U0001F443', | |
'\U0001F446-\U0001F450', | |
'\U0001F466-\U0001F469', | |
'\U0001F46E', | |
'\U0001F470-\U0001F478', | |
'\U0001F47C', | |
'\U0001F481-\U0001F483', | |
'\U0001F485-\U0001F487', | |
'\U0001F4AA', | |
'\U0001F574-\U0001F575', | |
'\U0001F57A', | |
'\U0001F590', | |
'\U0001F595-\U0001F596', | |
'\U0001F645-\U0001F647', | |
'\U0001F64B-\U0001F64F', | |
'\U0001F6A3', | |
'\U0001F6B4-\U0001F6B6', | |
'\U0001F6C0', | |
'\U0001F6CC', | |
'\U0001F918', | |
'\U0001F919-\U0001F91C', | |
'\U0001F91E', | |
'\U0001F91F', | |
'\U0001F926', | |
'\U0001F930', | |
'\U0001F931-\U0001F932', | |
'\U0001F933-\U0001F939', | |
'\U0001F93D-\U0001F93E', | |
'\U0001F9D1-\U0001F9DD', | |
'\U0001F1E6-\U0001F1FF', | |
'\U0001F3FB-\U0001F3FF', | |
) | |
def convert(hex_string): | |
cp = codepoints.from_unicode(hex_string)[0] | |
base = cp - 0x10000 | |
high_surrogate = (base >> 10) + 0xD800 | |
low_surrogate = (base & 0x3FF) + 0xDC00 | |
return str(hex(high_surrogate)) + str(hex(low_surrogate)) | |
# return u''.join(codepoints._to_utf16(codepoints.from_unicode(hex))) | |
for p in points: | |
if '-' in p: | |
hexes = p.split('-') | |
print(convert(hexes[0]) + '-' + convert(hexes[1])) | |
else: | |
print(convert(p)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment