【问题标题】:Python convert mix from UTF-16 and UTF-8(?) to regular stringPython将混合从UTF-16和UTF-8(?)转换为常规字符串
【发布时间】:2023-03-24 15:26:02
【问题描述】:

我有这样的字节(来自 requests.get):

<th class=\"app_result_head\">\u0414\u043e\u043b\u0436\u043d\u0438\u043a<\/th>

如何将其转换为像这样的正确 python 字符串?:

<th class="app_result_head">Должник</th>

【问题讨论】:

    标签: python python-3.x unicode python-unicode


    【解决方案1】:

    my_bytes - 有问题的“字节”。事实证明,答案相当简单。

    out = my_bytes.decode('raw_unicode_escape')
    out = out.replace('\"', '"')
    out = out.replace('\/', "/")
    

    来自 raw_unicode_escape 的文档:

    Latin-1 encoding with \uXXXX and \UXXXXXXXX for other code points.
    

    这正是我所需要的

    【讨论】:

    • 这只是 python 2 对吗? python 3 str 没有属性decode
    • @Jean-FrançoisFabre 这个 3.5.2。 my_bytes 不是字符串,它是“字节”类型。我会编辑答案
    • @Jean-FrançoisFabre 我从 requests.get() 得到字节,它返回字节,而不是字符串
    • 您可以使用普通的unicode-escape 来处理其他反斜杠转义,而不是手动和不完整地进行。但是,无论如何,抓取的网页似乎不太可能包含 Python 格式的字符串文字。你确定你没有像 JSON 这样的东西吗?如果是这样,您应该使用适当的 JSON 解析器。有 许多 格式使用 \u 转义,并且它们具有不同的边缘情况规则。
    猜你喜欢
    • 1970-01-01
    • 2011-09-06
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2014-02-05
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多