【问题标题】:Presenting Multiple Encodings in XML在 XML 中呈现多种编码
【发布时间】:2013-04-21 15:09:42
【问题描述】:

我正在提供一个电子邮件 API,它允许您通过 XML/JSON 获取某些电子邮件的内容。

我的问题是,我有一个列表视图,我想在其中一次显示多封电子邮件的文本。并且每个文本都使用不同的编码进行编码。

我尝试放置特定的编码文本而不是 XML 的 CDATA 部分,以便允许它。但是现在我仍然得到错误:

This page contains the following errors:

error on line 45 at column 23: Input is not proper UTF-8, indicate encoding !
Bytes: 0x10 0x30 0x30 0x33

我在这些电子邮件中有各种字符编码,从 ISO 到拉丁文等。我可以在 XML 编码中声明没有错误的“通用”编码吗?

JSON 序列化运行良好。

【问题讨论】:

  • 用base64之类的编码,xml文件使用utf-8。
  • 你有办法知道传入数据的编码吗?在这种情况下,在创建 XML 之前将其解码为 un​​icode 并以 UTF-8 编码。
  • @ubik 这是一个很好的建议。实际上,我会要求您将其作为答复,以便我可以尝试并将其标记为已接受的答案,如果可行的话。
  • @gatto 这很有趣,但如果可能的话,我希望它在查看 XML 时是“可读的”。在 base64 中对其进行编码会在某种程度上破坏该目的。

标签: python xml json encoding utf-8


【解决方案1】:

如果您有办法知道传入数据的编码,只需将其解码为 Unicode,然后在创建 XML 之前将其编码为 UTF-8。

# e.g. latin1 -> utf-8
text.decode('latin1').encode('utf-8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多