联通转换

2024-03-28 09:49:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手。在

我有泰米尔语的unicode。在

当我使用sys.getdefaultencoding()输出为“Cp1252”

我的要求是当我使用text=testString.decode(“utf-8”)我收到错误“UnicodeEncodeError:'charmap'codec无法对0-8位置的字符进行编码:字符映射到未定义”


Tags: text编码错误sysunicode字符utfcodec
3条回答

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。在

简而言之:如果你真的想这么做的话,那就去做text = testString.encode("utf-8")。否则,请解释您要做什么,并向我们展示print repr(testString)的结果。在

将此添加为第一行代码

# -*- coding: utf-8 -*- 

在你的代码后面。。。在

text=unicode(测试字符串,“UTF-8”)

您需要知道testString使用的是哪个字符编码。如果不是utf8,则使用decode('utf8')时将发生错误。在

相关问题 更多 >