【发布时间】:2023-04-06 17:28:02
【问题描述】:
这段代码有点问题:
print "Таблица Unicode (русские буквы)".center(18*4)
i = 0
for c in "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"\
"абвгдежзийклмнопрстуфхцчшщъыьэюя":
u = unicode(c, 'koi8-r')
在这里我尝试将俄语字母翻译成 Unicode,但出现错误:
SyntaxError: (unicode error) 'utf8' codec can't decode byte 0xc0 in position 0: invalid start byte
但如果我像这样手动尝试:
u = unicode('A', 'koi8-r')
u = unicode('Б', 'koi8-r')
一切正常。有什么问题?
【问题讨论】:
-
您确定您的文件是以 KOI8-R 编码存储的吗?而不是,例如,UTF-8(或 ISO-8859-1)?
-
愚蠢的我!!!我忘了加上# -- coding:koi8-r --
-
但是现在俄语单词显示错误(((
-
#!coding: koi8-r声明源文件编码。源文件必须以该编码保存,否则您将得到不正确的字符。然后按照@Ignacio 的建议使用 Unicode 字符串。 -
问题是你有一个包含 UTF-8 字符的字节字符串,而
for c in只给你一个多字节序列的单个字节。尝试打印len('Б')看看我的意思。
标签: python python-2.7 unicode