【问题标题】:Dealing with Unicode range in Python在 Python 中处理 Unicode 范围
【发布时间】:2014-01-06 17:18:51
【问题描述】:

我正在尝试测试给定的字符串是否在片假名范围内。

我尝试了这里提出的解决方案:Python and Unicode Blocks for regex。但是,我的输出仍然是“无”。我在这里想念什么?

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
print re.search(u'[\u30A0-\u30FF]', u'カタカ')

【问题讨论】:

  • 在 Windows 上使用 python 2.7
  • 我在链接的问题中注意到他们使用u'[\u30a0-\u30ff]' 而您使用u'[\u30A0-\u30FF]'。会不会有区别?
  • 为我工作。你确定你真的用 UTF-8 保存了文件吗?
  • @shamim:您使用的是什么文本编辑器,您是如何保存文件的? (为了测试,我直接将您问题中的代码复制粘贴到 PythonWin 中,保存并运行,得到了预期的 Match 对象)。
  • @Wooble,啊哈!!知道了。我使用的是 PyScripter,但后来我也尝试了 PythonWin 并获得了匹配对象。非常感谢!

标签: python regex unicode


【解决方案1】:

您的问题是您使用的是 Windows。您指定源文件为 UTF-8,但 Windows 不使用 UTF-8 - 它使用各种代码页,具体取决于 Windows 本身的语言版本和设置。

许多编辑器都有办法覆盖 Windows 代码页并将文件另存为 UTF-8。例如,记事本在“另存为”对话框中有一个Encoding 列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多