在 python 中将 ansi 转义符转换为 utf-8
convert ansi escape to utf-8 in python
我可能在访问天气时出错,这个字符串是 ansi 或其他任何东西,但它来自带标题的 rtf 文档。
{\rtf1\ansi\ansicpg1252
文档中感兴趣的字符串是:
ansi_string = r'3 \u176? \u177? 0.2\u176? (2\u952?)'
当我用 word 打开文档时,它给我:3° ± 0.2° 2θ
问题是:
1)这些转义码是什么?
是否可以使用 python 内置方法将此字符串转换为 utf-8?
我认为这不是最佳答案,但为了说明我想要的,这里是工作代码。
import clr
clr.AddReference("System")
clr.AddReference("System.Windows.Forms")
import System.Windows.Forms as WinForms
def rtf_to_text(rtf_str):
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θ)'
我可能在访问天气时出错,这个字符串是 ansi 或其他任何东西,但它来自带标题的 rtf 文档。
{\rtf1\ansi\ansicpg1252
文档中感兴趣的字符串是:
ansi_string = r'3 \u176? \u177? 0.2\u176? (2\u952?)'
当我用 word 打开文档时,它给我:3° ± 0.2° 2θ
问题是: 1)这些转义码是什么? 是否可以使用 python 内置方法将此字符串转换为 utf-8?
我认为这不是最佳答案,但为了说明我想要的,这里是工作代码。
import clr
clr.AddReference("System")
clr.AddReference("System.Windows.Forms")
import System.Windows.Forms as WinForms
def rtf_to_text(rtf_str):
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θ)'