我想将此字符串转换为正确的字符串,如何在不使用中文错误代码的情况下将\\uOOOA
转换为'\ n'
# string
s = u'蛋疼\\u000A egg烦'
我试过这个
s.encode('utf-8').decode('unicode-escape')
这会纠正\\u000A
,但会将中文文本变成难以理解的胡言乱语:
èç¼
eggç¦
我从HTML页面的Javascript代码中获取了字符串。
答案 0 :(得分:1)
unicode-escape
首先将未转义的字节解码为 Latin-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'\u86cb\u75bc\n egg\u70e6'
>>> print json.loads(s)
蛋疼
egg烦
答案 1 :(得分:-2)
通过示例学习:
==> 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烦
>>>