Skip to content

Instantly share code, notes, and snippets.

@oliverroick
Created April 18, 2017 18:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oliverroick/6347c473893d6c4286a1aafcb243b01c to your computer and use it in GitHub Desktop.
Save oliverroick/6347c473893d6c4286a1aafcb243b01c to your computer and use it in GitHub Desktop.
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