Maison >développement back-end >Tutoriel Python >isalpha ne prend pas en charge Unicode dans Python 2.7
Lorsque j'écrivais un composant de recherche aujourd'hui, je voulais sélectionner le champ de recherche selon que la recherche portait sur toutes les lettres.
Il y a donc le code suivant :
if q.isalpha():
query = query.filter(User.username.ilike(like_str))else:
query = query. filter (User.realname.ilike(like_str))
Mais j'ai trouvé que même s'il contient du chinois, isalpha est jugé vrai.
Le test a révélé que la méthode isalpha in str n'est pas fiable pour juger Unicode.
Le décodage des paramètres par défaut dans Flask est UTF-8. Par conséquent, vous devez utiliser encode('utf-8') pour le ré-encoder avant que la fonction isalpha() puisse être utilisée.
Le test est le suivant :
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
[Recommandations associées]
1 Tutoriel vidéo gratuit Python
2. en python Méthode pour vérifier si une chaîne est constituée de lettres : string.isalpha()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!