伙计,你知道unicode中有多少个代码点吗?
顺便说一句,来自 Python 文档:
返回表示 Unicode 代码点为整数i的字符的字符串。例如,
chr(97)返回字符串'a',而chr(8364)返回字符串'€'。这是 的倒数ord()。参数的有效范围是从 0 到 1,114,111(以 16 为底的 0x10FFFF)。
ValueError如果i超出该范围,则将引发。
所以
import sys
for i in range(sys.maxunicode + 1):
char = chr(i)
print(repr(char)) # print('\ud800') causes a UnicodeEncodeError
Run Code Online (Sandbox Code Playgroud)
所有 Unicode 字符都可以表示UTF-n为所有定义的n. 你想达到什么目的?
如果您真的想做一些事情,例如打印特定编码中的所有有效字符,而无需知道编码是“单字节”还是“多字节”,或者其大小是否固定:
import unicodedata as ucd
import sys
def dump_encoding(enc):
for i in xrange(sys.maxunicode):
u = unichr(i)
try:
s = u.encode(enc)
except UnicodeEncodeError:
continue
try:
name = ucd.name(u)
except:
name = '?'
print "U+%06X %r %s" % (i, s, name)
if __name__ == "__main__":
dump_encoding(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)
建议:尝试一些小的东西,比如cp1252. 将标准输出重定向到文件。
| 归档时间: |
|
| 查看次数: |
2961 次 |
| 最近记录: |