与Python中的字符串中找到一个Unicode字符



我是Python的新手,也许这个问题不是那么聪明,但是无论如何我无法解决这个小问题。像往常一样,例如,在条件语句中,要在字符串中找到一些字符或子字符串,我用来编写以下代码:

if 'a' in myvariable:
    <do something>

但是,如果字符或子字符串是具有高代码点的Unicode字符,例如A⸣(半平方支架(,我会收到以下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

我理解这个问题,但我无法弄清楚如何解决它。

当然我正在与Python合作2.7

编辑

这是我的真实迭代,以下是一些澄清:

if '⸣' not in myvariable:
    newvariable = 100.0

我必须测试是否不在myvaria中:myVaria -able类型已经是 <type 'unicode'>,而unicode字符'⸣'(Unicode Code Point u 2e23(不超出ASCII字符范围。此外,脚本已经使用Pragma # -*- coding: utf-8 -*-

非常感谢所有

这就是为什么在Python 3中删除了字节字符串向Unicode字符串的隐式转换。

您快到了,在文件开始时,#coding行。只有一个微小的更改将您的测试字符变成一个Unicode字符串:

if u'⸣' not in myvariable:
    newvariable = 100.0

您可能像我在系统上一样遇到特定角色,因此您可以使用等效的逃生序列:

if u'u2e23' not in myvariable:
    newvariable = 100.0

您可以将Unicode声明为Eg:var = u'e',然后执行以下操作var.find('a')以在Unicode变量中找到字符。

希望这有效!

您也可以尝试更改文件编码类型以使其正常工作。请参阅此文档:https://www.python.org/dev/peps/pep-0263/

您可以通过将其添加到源文件中来将文件的编码类型更改为UTF-8:

# -*- coding: utf-8 -*-

示例

# -*- coding: utf-8 -*-
b = '⸣fdsf'
if 'd' in b:
    print 'd'

与python 3一起工作?😃我认为您可以导入文本否的模块?

最新更新