データベースのUnicodeエンコーディングによって引き起こされる文字列読み取りの問題を解決します

データベース設定コードは次のとおりです。utf8mb4_unicode_ci。
ビジネスでは、データベースには実際の入力文字列データをスペースと比較するためにスペース付きの文字が格納されており、表面上は同じ外観になりますが、プログラムの比較後にFalseが返されます。
例:
データベース視覚化クエリの結果は次のとおりです。
ここに画像の説明を挿入

プログラムクエリの結果:

>>> data
[('Free\xa0Pray')]

これは明らかに正常に一致させることができず、unicodedataライブラリで問題を解決できます。
解決:

new_str = unicodedata.normalize("NFKD", unicode_str)
>>> input_name
'Free Pray'
>>> db_name
'Free\xa0Pray'
>>> input_name == db_name
False
>>> import unicodedata
>>> new_name = unicodedata.normalize("NFKD", db_name)
>>> new_name
'Free Pray'
>>> new_name == input_name
True

詳細については、公式ドキュメントを参照してください:https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize

記事が役に立ったと思われる場合は、いいね、ブックマーク、フォローしてください。

おすすめ

転載: blog.csdn.net/Lin_Hv/article/details/108406007