Heim  >  Artikel  >  Backend-Entwicklung  >  isalpha unterstützt Unicode in Python 2.7 nicht

isalpha unterstützt Unicode in Python 2.7 nicht

Y2J
Y2JOriginal
2017-05-18 15:07:331807Durchsuche

Als ich heute eine Suchkomponente schrieb, wollte ich das Suchfeld danach auswählen, ob nach allen Buchstaben gesucht werden soll.
Es gibt also folgenden Code:

if q.isalpha():
query = query.filter(User.username.ilike(like_str))else:
query = query. filter (User.realname.ilike(like_str))

Aber ich habe festgestellt, dass Isalpha als wahr beurteilt wird, selbst wenn Chinesisch darin enthalten ist.
Der Test ergab, dass die Methode isalpha in str bei der Beurteilung von Unicode unzuverlässig ist.
Die Standardparameterdekodierung in Flask ist UTF-8. Daher müssen Sie es mit encode('utf-8') neu kodieren, bevor die -Funktion isalpha() verwendet werden kann.
Der Test ist wie folgt:

In [15]: u"张 x".isalpha()
Out[15]: TrueIn [16]: "张 x".isalpha()Out[16]: False
In [17]: "aac".isalpha()
Out[17]: True
In [18]: u"张 x".encode('utf-8').isalpha()
Out[18]: False

[Verwandte Empfehlungen]

1 Python kostenloses Video-Tutorial

2. in Python Methode zur Überprüfung, ob eine Zeichenfolge aus Buchstaben besteht: string.isalpha()

Das obige ist der detaillierte Inhalt vonisalpha unterstützt Unicode in Python 2.7 nicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn