Python的内置函数ord
和chr
返回UNICODE字符,它们分别基于16位数字和数字。是否有一种方法可以获得基于8位无符号数的扩展ASCII字符(0-255),而无需定义字典来这样做?
我可以使用Unicode字符,但它的控制字符与ASCII不同(特别是10、13、26和255)。这四个数字是我不能使用Unicode的主要原因,因为它们对我的代码很重要。
10:换行
13:回车
26:替代
255年:
盼Python3具有bytes
类型,它具有decode
方法将每个字节转换为相应的Unicode字符。但是,由于大约有一千种不同的面向字节的字符集,您必须告诉decode
您正在使用哪一种。
Python 3的默认值是'utf-8'
,但注释"255是一个控制代码"告诉我你没有用UTF-8。我和Python都没有水晶球,所以你需要弄清楚你正在使用的字符集的名称。
[编辑]"nbsp"可能是指非破断空间,U+00A0。如果它被编码为255,那么您可能正在处理某种类型的DOS代码页。.decode('cp850')
可以工作,但正如我所说的,有成千上万的扩展名,猜测错误的名称将会给出奇怪的Unicode输出。