Python如何不通过自定义字典获取0-255范围的扩展ASCII字符
你可以通过Python内置的bytes类型配合latin-1编码实现需求,不需要自定义字典:
数值转扩展ASCII字符
把0-255范围内的整数存入单元素bytes对象,用latin-1编码解码即可得到对应扩展ASCII字符。latin-1(即ISO-8859-1)的0-255码位和扩展ASCII完全一一对应,不会出现映射偏移:
def ext_ascii_chr(num: int) -> str: if 0 <= num <= 255: return bytes([num]).decode("latin-1") raise ValueError("输入数值需在0-255范围内")
扩展ASCII字符转数值
对单个扩展ASCII字符用latin-1编码后取首个字节的数值即可:
def ext_ascii_ord(char: str) -> int: encoded = char.encode("latin-1") if len(encoded) == 1: return encoded[0] raise ValueError("输入不是有效的单个扩展ASCII字符")
关键数值验证
你提到的四个核心数值映射完全符合预期:
- 10 → 对应换行符(Line Feed),编码返回
b'\x0a' - 13 → 对应回车符(Carriage Return),编码返回
b'\x0d' - 26 → 对应替换符(Substitute),编码返回
b'\x1a' - 255 → 对应非间断空格(nbsp),编码返回
b'\xff'
该方案全程使用Python内置能力,没有额外依赖,也不需要手动维护字典映射。
内容的提问来源于stack exchange,提问作者Enigmacy
相关产品推荐
相关产品推荐

