import json,sys,platform import unicodedata samples={'normal':'AI 검수','nbsp':'AI\u00a0검수','zeroWidth':'AI\u200b검수','nfd':'\u1100\u1161','nfc':'가','emoji':'👨\u200d👩\u200d👧'} rows=[] for name,s in samples.items():rows.append({'name':name,'text':s,'codepoints':[f'U+{ord(c):04X}' for c in s],'names':[unicodedata.name(c,'UNKNOWN') for c in s],'nfc':unicodedata.normalize('NFC',s),'nfkc':unicodedata.normalize('NFKC',s),'flags':[i for i,c in enumerate(s) if c in ['\u00a0','\u200b','\ufeff','\u202f']]}) result={'rows':rows,'nbspEqualsNormal':samples['nbsp']==samples['normal'],'nfcMakesHangulEqual':unicodedata.normalize('NFC',samples['nfd'])==samples['nfc'],'zeroWidthAfterNFC':unicodedata.normalize('NFC',samples['zeroWidth']),'automaticDeletion':False} assert not result['nbspEqualsNormal'] and result['nfcMakesHangulEqual'] assert '\u200b' in result['zeroWidthAfterNFC'] from datetime import datetime as _runtime_datetime, timezone as _runtime_timezone result.update({'fixtureCreatedOn':'2026-10-15','executedAt':_runtime_datetime.now(_runtime_timezone.utc).isoformat(),'runtime':platform.python_version(),'synthetic':True}) print(json.dumps(result,ensure_ascii=False,indent=2))