有时当我从文件或用户那里获得输入时,我会得到一个包含转义序列的字符串.我想以与Python处理字符串文字中的转义序列相同的方式处理转义序列.
例如,假设myString
定义为:
>>> myString = "spam\\neggs"
>>> print(myString)
spam\neggs
Run Code Online (Sandbox Code Playgroud)
我想要一个函数(我会称之为process
)这样做:
>>> print(process(myString))
spam
eggs
Run Code Online (Sandbox Code Playgroud)
重要的是该函数可以处理Python中的所有转义序列(在上面链接的表中列出).
Python有功能吗?
可能重复:
在python中转换字符串,如\\ uXXXX
嗨,假设我有字符串
test
'\\u0259'
Run Code Online (Sandbox Code Playgroud)
注意转义反斜杠.
如何将其转换为相应的unicode字符串?
我有一些奇怪的逃脱unicode字符串的问题.我的脚本通过请求库使用web服务,response.text包含以下unicode字符串:
u'\\u003c? abc ?\\u003eDas Modell des Adaptiven Zyklus wurde aus vergleichenden Untersuchungen zur Dynamik von \xd6kosystemen abgeleitet.\\u003c? /abc ?\\u003e'
**Updated** Martijn solution works with the upper one, but breaks with this one because of len="12"
u'\\u003c?abc len="12"?\\u003eResilienz sollte als st\xe4ndiger Anpassungsprozess zwischen Systemen und der Umwelt begriffen werden.\\u003c? /abc ?\\u003e'
Run Code Online (Sandbox Code Playgroud)
服务器的响应如下所示:
\u003c? abc ?\u003eDas Modell des Adaptiven Zyklus wurde aus vergleichenden Untersuchungen zur Dynamik von Ökosystemen abgeleitet.\u003c?dpf /sent ?\u003e
Run Code Online (Sandbox Code Playgroud)
问题是双转义的unicode序列,如\ u003c,\ u003c通常代表<char.\ xd6是正确的,代表德国Ö.这个双重逃逸完全搞砸了我的unicode字符串:-)
我在这篇文章中发现了一个类似的问题: Stack Overflow - 在python中转换字符串如\ uXXXX
使用string.decode('unicode-escape')的解决方案似乎只有在所有unicode序列都被转义但没有混合的单转义和双转义时才能工作.用单个替换双重转义会给我一个损坏的unicode字符串. …
我已经检查了此解决方案,但在python3中不起作用。
我有一个这样的转义字符串:str = "Hello\\nWorld"
而且我想获得未转义的相同字符串:str_out = Hello\nWorld
我尝试了这个没有成功: AttributeError: 'str' object has no attribute 'decode'
这是我的示例代码:
str = "Hello\\nWorld"
str.decode('unicode_escape')
Run Code Online (Sandbox Code Playgroud)