【问题标题】:Python: detecting unicodePython:检测 unicode
【发布时间】:2012-07-25 04:37:04
【问题描述】:

我正在使用 Python 的 re 模块来审查一些文本。我必须审查 ASCII 和 Unicode 文本,所以如果文本是 Unicode,我需要设置 re 的 Unicode 标志。有没有一种方法可以检测文本是否为 Unicode?​​p>

【问题讨论】:

  • 一直设置Unicode标志。
  • 你怎么弄混音了?您的框架应该处理unicodes。
  • 我需要对文本中的特殊字符进行转义,因此如果我将字符“\”转换为 unicode,则会对其进行转义。这就是为什么我需要一种方法来找出它是哪种编码类型

标签: python regex unicode


【解决方案1】:

ASCII 是 Unicode 的一个子集,您不必做任何事情——除非您有理由怀疑您的文本既不是 ASCII 也不是 Unicode(例如 Windows CP 1252 等),只需默认使用 Unicode。

【讨论】:

  • 我需要对文本中的特殊字符进行转义,因此如果我将字符“\”转换为 unicode,则会对其进行转义。这就是为什么我需要一种方法来找出它是哪种编码类型。
  • 将文本编码为 Unicode 不会神奇地转义字符。 'dda' 是正确的,只要在任何地方使用 Unicode 字符串。
【解决方案2】:

你可以使用

 isinstance( s, unicode)

查看对象是否为 unicode。但是,如果您将所有字符串都作为 encoded unicode,那么您需要知道编码。对于可能是一场噩梦的电子邮件处理应用程序。过去,我为此使用了chardet

【讨论】:

    【解决方案3】:

    您可以尝试text.decode('utf-8'),如果成功且没有错误,则文本是 UTF-8 编码的 Unicode(纯 ASCII 是其中的一个子集)。如果是其他任何东西,即代码页,它可能会引发异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多