Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Unicode的转换_Python - Fatal编程技术网

Python Unicode的转换

Python Unicode的转换,python,Python,我是python的新手 我有一个泰米尔语的unicode 当我使用sys.getdefaultencoding()时,我得到的输出是“Cp1252” 我的要求是,当我使用text=testString.decode(“utf-8”)时,我会得到错误“UnicodeEncodeError:'charmap'编解码器无法对位置0-8中的字符进行编码:字符映射到未定义” 当我使用 sys.getdefaultencoding()我得到 输出为“Cp1252” 对此有两点评论:(1)是“cp1252”,

我是python的新手

我有一个泰米尔语的unicode

当我使用sys.getdefaultencoding()时,我得到的输出是“Cp1252”

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

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

对此有两点评论:(1)是“cp1252”,而不是“cp1252”。不要凭记忆打字。(2) 无论是谁导致sys.getdefaultencoding()生成“cp1252”,都应该礼貌地告诉他这不是一个好主意

至于其余的,让我猜猜看。您有一个
unicode
对象,其中包含一些泰米尔语文本。你错误地试图解码它。解码意味着从
str
对象转换为
unicode
对象。不幸的是,您没有
str
对象,更不幸的是,您被Python2中为数不多的一个糟糕的缺点所困扰:它试图通过使用系统默认编码对
unicode
字符串进行编码来创建
str
对象。如果是“ascii”或“cp1252”,编码将失败。这就是为什么会出现Unicode*En*codeError而不是Unicode*De*codeError

简短回答:如果您真的想这样做,请执行
text=testString.encode(“utf-8”)
。否则,请解释您要执行的操作,并向我们显示打印repr(testString)的结果

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

对此有两点评论:(1)是“cp1252”,而不是“cp1252”。不要凭记忆打字。(2) 无论是谁导致sys.getdefaultencoding()生成“cp1252”,都应该礼貌地告诉他这不是一个好主意

至于其余的,让我猜猜看。您有一个
unicode
对象,其中包含一些泰米尔语文本。你错误地试图解码它。解码意味着从
str
对象转换为
unicode
对象。不幸的是,您没有
str
对象,更不幸的是,您被Python2中为数不多的一个糟糕的缺点所困扰:它试图通过使用系统默认编码对
unicode
字符串进行编码来创建
str
对象。如果是“ascii”或“cp1252”,编码将失败。这就是为什么会出现Unicode*En*codeError而不是Unicode*De*codeError


简短回答:如果您真的想这样做,请执行
text=testString.encode(“utf-8”)
。否则,请解释您要执行的操作,并向我们显示打印报告(testString)的结果。

将此添加为您的第一行代码

# -*- coding: utf-8 -*- 
稍后在代码中


text=unicode(testString,“UTF-8”)

将其添加为第一行代码

# -*- coding: utf-8 -*- 
稍后在代码中


text=unicode(testString,“UTF-8”)

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

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

您使用的是什么版本的Python?您的泰米尔字符串是Unicode字符串吗,如
u'தமிழ்'文字,还是8位字符串?““解码”表示“从8位编码转换为Unicode”
testString.decode(“utf-8”)
假设
testString
在utf-8中。是这样吗?如果
ord(testString[0])
低于256,则为8位,如果略高于2900,则可能为Unicode泰米尔。CP1252绝对是一个错误的代码页,它是一个欧洲代码页。检查您的区域设置。您使用的是什么版本的Python?您的泰米尔字符串是Unicode字符串吗,如
u'தமிழ்'文字,还是8位字符串?““解码”表示“从8位编码转换为Unicode”
testString.decode(“utf-8”)
假设
testString
在utf-8中。是这样吗?如果
ord(testString[0])
低于256,则为8位,如果略高于2900,则可能为Unicode泰米尔。CP1252绝对是一个错误的代码页,它是一个欧洲代码页。检查您的区域设置。