簡體   English   中英

Python - 如何在作為變量的Unicode字符上執行字符串查找?

[英]Python - How can I do a string find on a Unicode character that is a variable?

這有效

s = 'jiā'
s.find(u'\u0101')

我該怎么做這樣的事情:

s = 'jiā'
zzz = '\u0101'
s.find(zzz)

由於我現在使用變量,如何指示變量表示的字符串是Unicode?

由於我現在使用變量,如何指示變量表示的字符串是Unicode?

首先將它定義為Unicode字符串。

zzz = u"foo"

或者,如果您已經在某些其他編碼中使用了字符串,則將其轉換為Unicode(如果字符串是非ASCII,則必須指定原始編碼)。

zzz = unicode(zzz, encoding="latin1")

或者使用Python 3,其中所有字符串都是Unicode。

你帖子中定義的zzz是一個普通的str對象,而不是一個unicode對象,所以沒有辦法表明它實際上不是。 但是,您可以通過指定編碼將str對象轉換為unicode對象:

s.find(zzz.decode("utf-8"))

通過編碼字符串的任何編碼來替換utf-8

請注意,在您的示例中

zzz = '\u0101'

zzz是一個長度為6的普通字符串。之后沒有簡單的方法可以修復這個錯誤的字符串文字,除了沿着

ast.literal_eval("u'" + zzz + "'")

在某些情況下(我忽略了),您還必須解碼您正在查找的字符串:

s.decode("utf-8").find(u"\u0101")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM