将unicode解码为字符串

2024-05-23 22:34:06 发布

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

我在python2.7中使用Pycharm,我有一个unicode对象

u'\u0635\u062d\u064a\u0641\u0629 \u0625\u0645\u0627\u0631\u0627\u062a\u064a\u0629: \u062a\u0641\u0643\u064a\u0643 \u062e\u0644\u064a\u0629 \u0627\u0633\u062a\u062e\u0628\u0627\u0631\u0627\u062a\u064a\u0629 \u0642\u0637\u0631\u064a\u0629 \u062a\u0646\u0634\u0637 \u0641\u064a \u0623\u0628\u0648\xa0\u0638\u0628\u064a http:\\/\\/t.co\\/ygRZ0pfv7W'

我想把它转换成一个普通的字符串,但却产生了以下错误:

^{pr2}$

我能做些什么?在


Tags: 对象unicodepycharmu0627u0631u0628u062au0643
2条回答

这里是unicode字符串的表示。表示法确保只打印可打印字符。所以u'\u0635正好是一个字符。代码点0635处的字符。在

>>> print u'\u0635\u062d\u064a\u0641\u0629 \u0625\u0645\u0627\u0631\u0627\u062a\u064a\u0629: \u062a\u0641\u0643\u064a\u0643 \u062e\u0644\u064a\u0629 \u0627\u0633\u062a\u062e\u0628\u0627\u0631\u0627\u062a\u064a\u0629 \u0642\u0637\u0631\u064a\u0629 \u062a\u0646\u0634\u0637 \u0641\u064a \u0623\u0628\u0648\xa0\u0638\u0628\u064a http:\\/\\/t.co\\/ygRZ0pfv7W'
صحيفة إماراتية: تفكيك خلية استخباراتية قطرية تنشط في أبو ظبي http:\/\/t.co\/ygRZ0pfv7W

我想我看到了你使用str()的问题。在

首先,你要理解字节串的编码概念。python2.7docUnicode HOWTO是一个很好的起点。在

其次,要了解表达式str2.decode()返回的是Unicode字符串。因此,你的表情

str3 = str(str2.decode(...))

请求Python使用默认编码器将Unicode字符串转换为字节字符串。默认的编码器是ASCII,它无法转换阿拉伯字符。这就是为什么Python给出错误消息,“'ascii'codec不能在0..4位置编码字符”。在

如果希望str3是与str2相对应的UTF-8编码字节字符串,请尝试:

^{pr2}$

但是,你真正想要完成什么?如果str2已经是字节字符串,为什么要将其转换为Unicode字符串,然后再转换回字节字符串?这个问题还有更多。在

更新:删除对包含错误消息文本和Python版本的引用,因为提问者编辑了问题以包含这些信息。谢谢您!在

相关问题 更多 >