我是python的新手。
我在泰米尔语中有一个unicode。
当我使用sys.getdefaultencoding()时,我得到输出为“Cp1252”
我的要求是,当我使用text = testString.decode(“utf-8”)时,我收到错误“UnicodeEncodeError:'charmap'编解码器无法编码位置0-8中的字符:字符映射到未定义”< / p>
答案 0 :(得分:3)
当我使用的时候 sys.getdefaultencoding()我得到了 输出为“Cp1252”
两条评论:(1)它是“cp1252”,而不是“Cp1252”。不要从内存中输入内容。 (2)任何引起sys.getdefaultencoding()生成“cp1252”的人都应该被礼貌地告知这不是一个好主意。
至于其余部分,让我猜一下。您有一个unicode
对象,其中包含泰米尔语中的一些文本。你错误地尝试解码它。解码意味着从str
对象转换为unicode
对象。遗憾的是,你没有str
个对象,更不幸的是你被Python 2中极少数的awkish / perlish wart之一反弹:它试图通过编码你的{str
对象使用系统默认编码的{1}}字符串。如果是'ascii'或'cp1252',编码将失败。这就是为什么你得到Unicode * En * codeError而不是Unicode * De * codeError。
简短回答:做unicode
,如果那是你真正想做的事。否则请解释您想要做的事情,并向我们展示text = testString.encode("utf-8")
的结果。
答案 1 :(得分:0)
将其添加为第1行代码
# -*- coding: utf-8 -*-
稍后在你的代码中......
text = unicode(testString,“UTF-8”)
答案 2 :(得分:0)
你需要知道哪个字符编码是testString使用的。如果不是utf8,使用decode('utf8')时会发生错误。