【发布时间】:2018-08-29 03:06:00
【问题描述】:
我正在尝试转换这个 unicode 值:
string_value = u'd\xe9cid\xe9'
到
string_value = u'décidé'
我觉得我什么都试过了:
decoded_str = string_value.decode('utf-8')
或
string_value = str(string_value)
decoded_str = string_value.encode('latin1').decode('utf-8')
或
string_value = string_value.decode('latin-1')
这个结果是:
d\xc3\xa9cid\xc3\xa9
如果我这样做,我会得到相同的结果:
string_value = string_value.encode('utf-8')
我读过: How do I convert 'blah \xe9 blah' to 'blah é blah'
也来自: Why does Python print unicode characters when the default encoding is ASCII?
和: How do I convert a unicode to a string at the Python level?
编辑:
我的问题是我需要使用数据,我的意思是如果我有:
string_value = u'mai 2017 \u2013 Aujourd\u2019hui'
这是:
2017 年 5 月 – Aujourd'hui
我想做:
string_list = string_value.split('-')
但结果是:
[u'mai 2017 \u2013 Aujourd\u2019hui']
我会:
['mai 2017', 'Aujourd’hui']
新编辑:
感谢您的回答,我知道我走错了方向。 \xe9 是 'é' 的正确表示,这不是问题。 我真正的问题是为什么 json.loads() 将 'mai 2017 – Aujourd'hui' 转换为 'mai 2017 \u2013 Aujourd\u2019hui' ?
【问题讨论】:
-
为什么要关心字符串在源代码中的表示方式?当你
print它时它不会正确输出吗? -
string_value = string_value.encode('utf-8') 在 python2.7 中为我工作
-
u'd\xe9cid\xe9'已经代表u'décidé'。你不需要做任何事情。 -
感谢您的回答@usr2564301,问题是我需要格式化数据。例如,我有这个 unicode u'mai 2017 \u2013 Aujourd\u2019hui',即'mai 2017 – Aujourd'hui',我想在'-'处拆分它,但它不起作用。我正在用这个例子编辑我的问题
-
-与–(\u2013) 完全不同。
标签: python python-2.7 decode encode python-unicode