在python中使用非ASCII值加入unicode u

时间:2014-11-18 10:55:50

标签: python unicode

我有一个字符串变量 -

val = "Rë█_Rajkumar"

现在我想在这个值前面添加unicode,如 -

unicode = u"Rë█_Rajkumar"

但是当我尝试使用join -

nor = u''.join(val)

它抛出异常 -

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)

我尝试了不同的方法,但无法完成这项工作,我应该如何加入

1 个答案:

答案 0 :(得分:2)

前缀仅适用于文字值;带前缀的语法从不带语法的语法创建不同的对象类型。

要转换已创建的str个对象,您需要将它们解码为Unicode,而在另一方向unicode对象可以转换为str个对象通过将它们编码为字节。

如果您没有明确地将字节解码为Unicode,Python会使用ASCII编解码器隐式地为您执行此操作。这对你失败了,所以你想明确地做到这一点。你不想使用u''.join()来做这件事;用于连接序列的那个。在此处使用str.decode()方法:

nor = val.decode('utf8')

用于解码的编解码器取决于您的数据。我在这里假设你的数据是用UTF-8编码的。您必须自己确定数据的正确编解码器。

您可能希望在此处对Unicode与字节字符串进行一些阅读: