此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/