如何剥离KOI8-R编码字符中的第8位以便对俄语字母进行透视?特别是,如何在Python中创建它?
答案 0 :(得分:2)
假设s是KOI8-R编码的字符串,你可以试试这个:
>>> s = u'Код Обмена Информацией, 8 бит'.encode('koi8-r')
>>> s
>>> '\xeb\xcf\xc4 \xef\xc2\xcd\xc5\xce\xc1 \xe9\xce\xc6\xcf\xd2\xcd\xc1\xc3\xc9\xc5\xca, 8 \xc2\xc9\xd4'
>>> print ''.join([chr(ord(c) & 0x7F) for c in s])
>>> kOD oBMENA iNFORMACIEJ, 8 BIT
第8位被(ord(c) & 0x7F)
剥离。
答案 1 :(得分:1)
我不确定你想要什么,但是如果你想把第8位归零,可以这样做:
character = character & ~(1 << 7)
答案 2 :(得分:1)
这是一种方式:
import array
mask = ~(1 << 7)
def convert(koistring):
bytes = array.array('B', koistring)
for i in range(len(bytes)):
bytes[i] &= mask
return bytes.tostring()
test = u'Русский Текст'.encode('koi8-r')
print convert(test) # rUSSKIJ tEKST
我不知道Python是否提供了一种更简洁的方法来执行此类操作:)