类似的UTF8字符对应ASCII字符

5
我正在寻找一个包含ASCII字符和外观相同的UTF8字符的表格。我知道它也取决于字体是否相同,但是从通用的角度出发,这已经足够了。
>>> # PY3 code:
>>> a='H'  # ascii
>>> b='Н'  # utf8
>>> a==b
False
>>> ' '.join(format(ord(x), 'b') for x in a)
'1001000'
>>> ' '.join(format(ord(x), 'b') for x in b)
'10000011101'
>>> a='P'  # ascii
>>> b='Ρ'  # utf8
>>> a==b
False
>>> ' '.join(format(ord(x), 'b') for x in a)
'1010000'
>>> ' '.join(format(ord(x), 'b') for x in b)
'1110100001'

“UTF-8字符”只是Unicode字符(准确来说是码点),因为UTF-8只是Unicode的一种编码方式。所以您要找到一种方法来查找与ASCII字符相似的Unicode码点? - sleske
是的,那就是我的意思。如果不太明显,我很抱歉。 - ddofborg
类似的问题在security.SE上:用于检测欺骗和社交工程攻击的相似字符列表 - sleske
是的,但我不在寻找“lol”~“lo1”。 - ddofborg
你有一些术语问题。你的问题同样适用于使用Unicode的任何系统,而不仅仅是使用其UTF-8编码存储字符串的系统。你正在使用的所有字符都是Unicode。通过ASCII,你似乎指的是C0控制字符和基本拉丁文。UTF-8不被认为是扩展的ASCII。此外,你的for x in a迭代Unicode代码点,而不是UTF-8代码单元。(==比较的是UTF-8代码单元的序列。) - Tom Blodget
1个回答

13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接