Python。将转义utf字符串转换为utfstring

2024-10-04 01:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

有什么内置的方法可以做到这一点吗?在

rawstr = r"3 \u176? \u177? 0.2\u176? (2\u952?)"
#required str is 3 ° ± 0.2° (2θ).

有点像

^{pr2}$

问题是如何将rawstr转换为utf-8。在

请看我的答案,以便更清楚。在

如果比我现在做的更好,请回答。在


Tags: 方法答案isrequired内置utfstrpr2
2条回答

如果您安装了windows和pythonnet

import clr
clr.AddReference("System")
clr.AddReference("System.Windows.Forms")
import System.Windows.Forms as WinForms

def rtf_to_text(rtf_str):
    """Converts rtf to text"""

    rtf = r"{\rtf1\ansi\ansicpg1252" + '\n' + rtf_str + '\n' + '}'
    richTextBox = WinForms.RichTextBox()
    richTextBox.Rtf = rtf
    return richTextBox.Text

print(rtf_to_text(r'3 \u176? \u177? 0.2\u176? (2\u952?)'))
 >'3 ° ± 0.2° (2θ)'

是的,有!在

对于python 2:

print r'your string'.decode('string_escape')

对于python3,需要将其转换为字节,然后使用decode

^{pr2}$

请注意,这在您的情况下不起作用,因为您的符号没有正确转义(即使您使用“正常”方式打印它们,它也不起作用)。在


你的字符串应该是这样的:

^{3}$

注意,如果需要在python中将string转换为bytes,那么可以使用bytes函数。在

my_str = r'3\u00B0 \u00b1 0.2\u00B0 2\u03B8'
my_bytes = bytes(my_str, 'utf-8')
print my_bytes.decode('string_escape') # python 2
print(my_bytes.decode('unicode_escape')) # python 3

相关问题 更多 >