from fontTools.ttLib import TTFont
import json
import re
def toUnicode(oneStr):
t=oneStr
if t[:3] == 'uni':t=t.replace('uni','\\u')
if t[:2] == 'uF':t=t.replace('uF','\\u')
return json.loads(f'"{t}"')
fontName="simsun.ttc"
dic = {}
font = TTFont(fontName, fontNumber=0)
glyphNames = font.getGlyphNames()
for i in glyphNames:
try:
if re.match('uni[A-Z0-9]+', i) and re.match('\w', toUnicode(i)):
dic[i] = toUnicode(i)
except: pass