无法在python中将unicode转换为utf8

2024-09-26 18:18:46 发布

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

这一定是件小事,但我做不到。 我有json,看起来像这样。在

        {'
          city': u'\\u0410\\u0431\\u0430\\u043a\\u0430\\u043d', 
        'language':{
          u'\\u0410\\u043d\\u0433\\u043b\\u0438\\u0439\\u0441\\u043a\\u0438\\u0439': 5608,      
          u'\\u0418\\u0442\\u0430\\u043b\\u044c\\u044f\\u043d\\u0441\\u043a\\u0438\\u0439': 98
        }
    },

我正在尝试将unicode字符串转换成utf-8。在

^{pr2}$

我有

'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'

而不是:

u'Абакан'

我做错什么了?在


Tags: jsoncitylanguageu0431u0430xb0xd0u043d
2条回答

正如@Amadan所说,你只需要打印你的字符串。在

但是为什么打印字符串可以解决这个问题呢?在

答案是,如果您输入string+Enter这将导致显示对象string的{a1}的表示;在python3.x中运行print string(或print(string))时,您将得到一个可读的字符串表示形式^{}-of string。在

>>> converted = string.encode('utf8')
>>> converted
'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
>>> print converted
Абакан
>>> print repr(converted)
'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
>>> print str(converted)
Абакан
>>> 

进一步阅读:Difference between __str__ and __repr__ in Python

What am I doing wrong?

不打印。在

当您在pythonrepl中计算一个字符串时,您将得到它的repr。这是'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'。当您打印它时,您将得到Абакан。在

print(string.encode('utf-8'))

相关问题 更多 >

    热门问题