我想将此字符串转换为正确的字符串,如何在不制作中文错误代码的情况下将\uOOOA
转换为"">
# string
s = u'蛋疼\u000A egg烦'
我试过这个
s.encode('utf-8').decode('unicode-escape')
这纠正了\u000A
,但将中文文本变成了不可读的胡言乱语:
èç¼
eggç¦
我从HTML页面中的Javascript代码中获取了字符串。
>unicode-escape
首先将未转义的字节解码为拉丁语-1。它也是用于Javascript数据的错误方法;Python和Javascript语法略有不同,在某些边缘情况下你会得到错误的结果。
相反,请将数据视为JSON。Javascript 字符串始终可以被视为 JSON 字符串类型,前提是您保留引号:
s = u'"蛋疼\u000A egg烦"'
请注意,该字符串现在以"
和"
开头和结尾。HTML页面中的原始Javascript字符串定义也可以。
当您从 HTML 页面中提取数据时,请保留双引号,然后将其传递给json.loads()
:
>>> import json
>>> s = u'"蛋疼\u000A egg烦"'
>>> json.loads(s)
u'u86cbu75bcn eggu70e6'
>>> print json.loads(s)
蛋疼
egg烦
通过示例学习:
==> python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> # original
...
>>> s= u'蛋疼\u000A egg烦'
>>> s
'蛋疼\u000A egg烦'
>>> print(s)
蛋疼u000A egg烦
>>>
>>>
>>> # answer
...
>>> s= u'蛋疼u000A egg烦'
>>> s
'蛋疼n egg烦'
>>> print(s)
蛋疼
egg烦
>>>