此Python脚本会转换为俄语字母:

s = u'Код Обмена Информацией, 8 бит'.encode('koi8-r')
print ''.join([chr(ord(c) & 0x7F) for c in s]) # kOD oBMENA iNFORMACIEJ, 8 BIT


这样可行。但我想对其进行修改,以获取用户输入。现在我被困在这里:

s = raw_input("Enter a string you want to translit: ")

s = unicode(s)
s = s.encode('koi8-r')

print ''.join([chr(ord(c) & 0x7F) for c in s])


这样结束:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)


怎么了?

最佳答案

s = unicode(s)默认情况下需要ascii编码。您需要为其提供输入内容的编码,例如s = unicode(s, 'utf-8')

关于python - KOI8-R:无法翻译字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/995531/

10-12 22:11