ホームページ  >  記事  >  バックエンド開発  >  isalpha は Python 2.7 の Unicode をサポートしていません

isalpha は Python 2.7 の Unicode をサポートしていません

Y2J
Y2Jオリジナル
2017-05-18 15:07:331808ブラウズ

今日検索コンポーネントを作成していたとき、すべての文字を検索するかどうかに基づいて検索フィールドを選択したいと思いました。
したがって、次のコードがあります:

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

しかし、中国語が含まれていてもisalphaが正しいと判断されることがわかりました。
テストの結果、str の isalpha メソッドは Unicode の判定において信頼性が低いことがわかりました。
Flask のデフォルトのパラメーターのデコードは UTF-8 です。したがって、functionisalpha() を使用する前に、encode('utf-8') を使用して再エンコードする必要があります。
テストは次のとおりです:

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

[関連推奨事項]

1. Pythonの無料ビデオチュートリアル

2. Pythonで文字列が文字で構成されているかどうかを確認する方法: string.isalpha()

以上がisalpha は Python 2.7 の Unicode をサポートしていませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。