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

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

Y2J
リリース: 2017-05-18 15:07:33
オリジナル
1919 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート