【发布时间】:2017-03-02 06:33:36
【问题描述】:
有没有内置的方法可以做到这一点?
rawstr = r"3 \u176? \u177? 0.2\u176? (2\u952?)"
#required str is 3 ° ± 0.2° (2θ).
类似
In [1] rawstr.unescape()?
Out[1]: '3° ± 0.2° 2θ'
问题是如何将 rawstr 转换为 'utf-8'。
请看我的回答更清楚。
如果比我现在做的更好,请回答。
【问题讨论】:
-
你可以使用
codecs.raw_unicode_escape_decode。不幸的是,您的原始字符串包含无效的 unicode 转义,因此它不起作用(我指的是\u176?。它们应该采用\uXXXX的形式) -
或者,创建一个字节串(使用
rb作为前缀)并使用.decode('unicode-escape'),但这再次失败,因为\u176?不是有效的Unicode 转义。 -
谢谢。我想我必须为我编写解码器。
标签: python