我有一个字符串变量 -
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)
我尝试了不同的方法,但无法完成这项工作,我应该如何加入
答案 0 :(得分:2)
前缀仅适用于文字值;带前缀的语法从不带语法的语法创建不同的对象类型。
要转换已创建的str
个对象,您需要将它们解码为Unicode,而在另一方向unicode
对象可以转换为str
个对象通过将它们编码为字节。
如果您没有明确地将字节解码为Unicode,Python会使用ASCII编解码器隐式地为您执行此操作。这对你失败了,所以你想明确地做到这一点。你不想使用u''.join()
来做这件事;用于连接序列的那个。在此处使用str.decode()
方法:
nor = val.decode('utf8')
用于解码的编解码器取决于您的数据。我在这里假设你的数据是用UTF-8编码的。您必须自己确定数据的正确编解码器。
您可能希望在此处对Unicode与字节字符串进行一些阅读: