解決資料庫unicode編碼導致字串讀取問題

2021-10-24 07:55:29 字數 850 閱讀 7197

資料庫設定編碼為: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

資料庫互導

1 sqlserver與access互導 方法一 用sql語句 匯出到access insert into openrowset microsoft.jet.oledb.4.0 x a.mdb admin a表 select from 資料庫名.b表 匯入access insert into b表 ...

centos postgresql資料庫匯入匯出

匯入整個資料庫 psql u postgres 使用者名稱 資料庫名 預設時同使用者名稱 data dum.sql 匯出整個資料庫 pg dump h localhost u postgres 使用者名稱 資料庫名 預設時同使用者名稱 data dum.sql 匯出某個表 pg dump h loc...

oracle資料庫導庫問題

一 dmp導庫過程中,資料量小的表匯入成功,到資料量大的表時開始報錯。發現原庫的表空間是users,匯入新庫後預設表空間是users,根據錯誤提示檢視新庫的的表空間users空間不大。採取源庫 新庫的表空間更換。imp 00058 遇到 oracle 錯誤 1653 ora 01653 表 zrzy...