这两种都是“相同”输入文本的有效url编码:
>>> from urllib.parse import unquote
>>> ulong = unquote('%E1%84%89%E1%85%A9%E1%84%89%E1%85%B5%E1%86%A8')
>>> ushort = unquote('%EC%86%8C%EC%8B%9D')
>>> ulong
'áá
©áá
µá¨'
>>> ushort
'ìì'
>>> from unicodedata import name
>>> [name(x) for x in ulong]
['HANGUL CHOSEONG SIOS',
'HANGUL JUNGSEONG O',
'HANGUL CHOSEONG SIOS',
'HANGUL JUNGSEONG I',
'HANGUL JONGSEONG KIYEOK']
>>> [name(x) for x in ushort]
['HANGUL SYLLABLE SO', 'HANGUL SYLLABLE SIG']
我不知道任何韩语,但它看起来像是由组合字符组成的长字符串(你也可以看到类似的事情与拉丁字符和重音)。如果我对形式进行规范分解和组合,我得到等式:
>>> from unicodedata import normalize
>>> normalize('NFC', ulong) == ushort
True
所以,要么你使用的是不同的输入文本,要么看起来是一样的(甚至
repr
还不足以看到差异,您必须检查代码点)或您正在使用的方法之一(可能是浏览器)正在执行规范化/转换。
由于文本的简短形式是服务器的工作方式,我建议您将脚本的输入规范化为NFC形式。