这有效
s = 'jiā'
s.find(u'\u0101')
我该怎么做:
s = 'jiā'
zzz = '\u0101'
s.find(zzz)
由于我现在使用变量,如何指示变量表示的字符串是Unicode? p>
答案 0 :(得分:7)
由于我现在使用变量,如何指示变量表示的字符串是Unicode? p>
首先将其定义为Unicode字符串。
zzz = u"foo"
或者,如果您已经在某些其他编码中使用了字符串,则将其转换为Unicode(如果字符串是非ASCII,则必须指定原始编码)。
zzz = unicode(zzz, encoding="latin1")
或者使用Python 3,其中所有字符串都是Unicode。
答案 1 :(得分:3)
zzz
是一个普通的str
对象,而不是unicode
个对象,所以没有办法表明它实际上并不是什么东西。 。但是,您可以通过指定编码将str
对象转换为unicode
对象:
s.find(zzz.decode("utf-8"))
通过编码字符串的任何编码来替换utf-8
。
请注意,在您的示例中
zzz = '\u0101'
zzz
是一个长度为6的普通字符串。之后没有简单的方法可以修复这个错误的字符串文字,除了
ast.literal_eval("u'" + zzz + "'")
答案 2 :(得分:0)
在某些情况下(我忽略了),您还必须解码您正在查找的字符串:
s.decode("utf-8").find(u"\u0101")