2024-06-26 14:48:22 发布
网友
我有一个字符串变量-
val = "Rë█_Rajkumar"
现在我想给这个值加上unicode前缀,比如-
但是当我尝试使用join-
nor = u''.join(val)
它抛出了一个例外-
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
我尝试了不同的方法,但都做不到,我该怎么加入
前缀仅适用于文本值;带前缀的语法创建与不带前缀的语法不同的对象类型。在
要转换已经创建的str对象,您需要将它们解码为Unicode,而在另一个方向上,unicode对象可以通过编码为字节来转换为str对象。在
str
unicode
如果您不显式地将字节解码为Unicode,Python会用ASCII编解码器隐式地为您完成这项工作。这对你来说失败了,所以你想显式地做。您不想为此使用u''.join();这是为了串联序列。在此处使用str.decode()方法:
u''.join()
str.decode()
nor = val.decode('utf8')
你用什么编解码器解码取决于你的数据。我假设你的数据是用UTF-8编码的。您必须自己确定数据的正确编解码器是什么。在
您可能需要在这里阅读Unicode和字节字符串:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)作者:Joel Spolsky
{/a2}
Pragmatic Unicode作者:Ned Batchelder
前缀仅适用于文本值;带前缀的语法创建与不带前缀的语法不同的对象类型。在
要转换已经创建的
str
对象,您需要将它们解码为Unicode,而在另一个方向上,unicode
对象可以通过编码为字节来转换为str
对象。在如果您不显式地将字节解码为Unicode,Python会用ASCII编解码器隐式地为您完成这项工作。这对你来说失败了,所以你想显式地做。您不想为此使用
u''.join()
;这是为了串联序列。在此处使用str.decode()
方法:你用什么编解码器解码取决于你的数据。我假设你的数据是用UTF-8编码的。您必须自己确定数据的正确编解码器是什么。在
您可能需要在这里阅读Unicode和字节字符串:
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)作者:Joel Spolsky
{/a2}
Pragmatic Unicode作者:Ned Batchelder
相关问题 更多 >
编程相关推荐