2024-03-28 09:49:15 发布
网友
我是python的新手。在
我有泰米尔语的unicode。在
当我使用sys.getdefaultencoding()输出为“Cp1252”
我的要求是当我使用text=testString.decode(“utf-8”)我收到错误“UnicodeEncodeError:'charmap'codec无法对0-8位置的字符进行编码:字符映射到未定义”
When I use the sys.getdefaultencoding() I get the output as "Cp1252"
对此有两点看法:(1)是“cp1252”,不是“cp1252”。不要凭记忆打字。(2) 不管是谁造成的sys.getdefaultencoding()制作“cp1252”应该礼貌地告诉他们这不是一个好主意。在
至于剩下的,让我猜猜。您有一个unicode对象,其中包含一些泰米尔语文本。你错误地试图解码它。Decode意味着从str对象转换为unicode对象。不幸的是,您没有str对象,更不幸的是,您被python2中为数不多的awkish/perlish缺点所困扰:它试图通过使用系统默认编码对您的unicode字符串进行编码,从而生成一个str对象。如果是'ascii'或'cp1252',编码将失败。这就是为什么你得到一个Unicode*En*codererror而不是Unicode*De*codererror。在
unicode
str
简而言之:如果你真的想这么做的话,那就去做text = testString.encode("utf-8")。否则,请解释您要做什么,并向我们展示print repr(testString)的结果。在
text = testString.encode("utf-8")
print repr(testString)
将此添加为第一行代码
# -*- coding: utf-8 -*-
在你的代码后面。。。在
text=unicode(测试字符串,“UTF-8”)
您需要知道testString使用的是哪个字符编码。如果不是utf8,则使用decode('utf8')时将发生错误。在
对此有两点看法:(1)是“cp1252”,不是“cp1252”。不要凭记忆打字。(2) 不管是谁造成的sys.getdefaultencoding()制作“cp1252”应该礼貌地告诉他们这不是一个好主意。在
至于剩下的,让我猜猜。您有一个
unicode
对象,其中包含一些泰米尔语文本。你错误地试图解码它。Decode意味着从str
对象转换为unicode
对象。不幸的是,您没有str
对象,更不幸的是,您被python2中为数不多的awkish/perlish缺点所困扰:它试图通过使用系统默认编码对您的unicode
字符串进行编码,从而生成一个str
对象。如果是'ascii'或'cp1252',编码将失败。这就是为什么你得到一个Unicode*En*codererror而不是Unicode*De*codererror。在简而言之:如果你真的想这么做的话,那就去做
text = testString.encode("utf-8")
。否则,请解释您要做什么,并向我们展示print repr(testString)
的结果。在将此添加为第一行代码
在你的代码后面。。。在
text=unicode(测试字符串,“UTF-8”)
您需要知道testString使用的是哪个字符编码。如果不是utf8,则使用decode('utf8')时将发生错误。在
相关问题 更多 >
编程相关推荐