【问题标题】:How can I transcode US ASCII HTML's e.g. é to UTF-8's é undere Linux如何转码 US ASCII HTML,例如Linux下的é转UTF-8的é
【发布时间】:2019-10-09 21:26:14
【问题描述】:

快速的网络搜索将确认 US ASCII 是 UTF-8 的子集,但我还没有找到如何转换 &foo;和 {到它们对应的原生 UTF-8 字符。

我知道至少 7 位 US ASCII 在 UTF-8 中没有变化,但我还没有看到过滤和转换 &foo; 的程序。到它如何自然地用 UTF-8 表达。

【问题讨论】:

  • 不清楚你在问什么。你的意思是编程吗?但是所以我们需要知道语言(shell被认为是一种语言)。注意:您将编码(ASCII/UTF-8)与转义序列和语言表示混合。 &foo; 存在于 ASCII 和 UTF-8 以及许多其他编码中。您的示例似乎是 HTML 或 XML,您应该在问题中指定这一点。
  • 是否有一个 Linux 命令可以让我获取 US-ASCII input.html,其中包含例如α 并将 α 的所有实例都替换为 α 的 UTF-8 输出文件输出到文件 output.html 或 stdout?
  • 也许您可以将其转换为一个编程问题,例如节点,或者将其移至高级用户或 Linux SE 站点。
  • 我认为没有好的程序。您需要一个 HTML 解析器,否则您可能会在字符串和其他地方(不应该更改的地方)进行替换。对我来说,您似乎在寻找错误的问题。可能你得到你需要的数据后应该做这样的替换(例如当你提取标题等时)关键字是html entities,没有那么多。

标签: utf-8 character-encoding ascii


【解决方案1】:

您可以在 PHP 中使用 html_entity_decode(s, "UTF-8") 或在 Python 中使用 html.unescape(s)

  1. https://www.php.net/manual/en/function.html-entity-decode.php
  2. https://docs.python.org/3/library/html.html#html.unescape

【讨论】:

    猜你喜欢
    • 2011-08-07
    • 2010-09-22
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 2017-01-10
    相关资源
    最近更新 更多