【发布时间】:2017-10-22 07:50:27
【问题描述】:
我正在寻找一个包含 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 characters" 只是 Unicode 字符(准确地说是代码点),因为 UTF-8 只是 Unicode 的编码。所以您正在寻找一种方法来查找类似于 ASCII 字符的 Unicode 代码点?
-
是的,这就是我的意思。对不起,如果这不是很明显。
-
是的,但我不是在寻找“lol”~“lo1”。
-
您遇到了一些术语问题。您的问题对于任何使用 Unicode 的系统同样有效,而不仅仅是那些使用 UTF-8 编码存储字符串的系统。您使用的所有字符都是 Unicode。通过 ASCII,您的意思似乎是 C0 Controls and Basic Latin。 UTF-8 不被视为扩展 ASCII。此外,您的
for x in a迭代 Unicode 代码点,而不是 UTF-8 代码单元。 (==确实比较了 UTF-8 代码单元的序列。)
标签: utf-8 ascii non-ascii-characters extended-ascii