2024-04-26 23:30:19 发布
网友
在python中可以将cp850映射到unicode吗?你可能会问,为什么我要这么做:我得到了一个使用cp850的文本文件,我必须用它创建一个数据库。所以有一些字符用于文本格式化,例如∮(CP850:0xDB)用作换行符。因此,我首先将文件转换为UTF-8,以使其更易于人类阅读。下一步是填充数据库并将特殊字符更改为合适的控制字符(\n、\t…)。但是转换过程(当然)会导致其数值表示形式发生变化,例如从0xDB到0x2588的换行符。有解决办法吗?还是我必须自己绘制代码?在
谢谢
Is it possible to map cp850 to unicode in python?
当然,只需解码数据的字节(Python 3示例):
>>> s=b'\xcdABCDEF\xcd\xdbHIJKLMNOP'.decode('cp850') >>> s '═ABCDEF═█HIJKLMNOP'
do i have to map the codes myself?
只是你需要翻译的字节。对于Unicode字符串,有一个方便的.translate方法,它接受映射字典:
.translate
完成后,将输出编码为UTF-8:
>>> s.translate(D).encode('utf8') b'\xe2\x95\x90ABCDEF\xe2\x95\x90\nHIJKLMNOP'
关键是在读取数据时解码为Unicode,用Unicode进行所有处理,然后在发送数据到存储器时将其编码回数据。例如,对于文件:
with open('out.txt','w',encoding='utf8') as f: f.write(s)
当然,只需解码数据的字节(Python 3示例):
只是你需要翻译的字节。对于Unicode字符串,有一个方便的
^{pr2}$.translate
方法,它接受映射字典:完成后,将输出编码为UTF-8:
关键是在读取数据时解码为Unicode,用Unicode进行所有处理,然后在发送数据到存储器时将其编码回数据。例如,对于文件:
相关问题 更多 >
编程相关推荐