【问题标题】:convert ansi escape to utf-8 in python在python中将ansi转义转换为utf-8
【发布时间】:2017-07-21 20:48:27
【问题描述】:

我在访问天气时可能是错误的,这个字符串是 ansi 或其他任何东西,但它来自带有标题的 rtf 文档。

{\rtf1\ansi\ansicpg1252

doc 中感兴趣的字符串是:

ansi_string = r'3 \u176? \u177? 0.2\u176? (2\u952?)'

当我用它给我的单词打开文档时:3° ± 0.2° 2θ

问题是: 1)这些转义码是什么? 是否可以使用 python 内置方法将此字符串转换为 utf-8?

【问题讨论】:

  • 你在读取某个文件的内容吗!?
  • 是的。 .rtf 文件...
  • 看看这是否有帮助! stackoverflow.com/questions/19591458/…
  • .rtf 的编码已经是 utf-8。里面的字符串是 ansi 转义的。我只想转换成对应的utf-8

标签: python encoding utf-8 ansi


【解决方案1】:

我认为这不是最好的答案,但为了说明我想要的,这里是工作代码。

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θ)'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-14
    • 2012-01-08
    • 2015-11-22
    • 2015-10-06
    • 2019-02-10
    • 1970-01-01
    • 2010-11-30
    • 2013-02-11
    相关资源
    最近更新 更多