[英]Python 3: How can I take a value in a variable and convert that to a unicode character?
[英]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.