91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

發布時間:2021-09-16 07:30:45 來源:億速云 閱讀:179 作者:chen 欄目:大數據

本篇內容介紹了“Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

在項目中利用Dapper將JSON數據存儲到MySQL數據庫,結果發現JSON數據中的中文亂碼。

為了引出最終問題出在什么地方,我們重頭開始進行講解,首先我們給出如下測試實體以及在數據庫中的表,如下:

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

為了數據操作方便,我們通過包【Dapper.SimpleCRUD】來操作,插入數據和查詢數據如下:

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

如上一切正常,接下來我們將存儲JSON數據的列類型修改為json,然后再來進行如上操作,結果會發現獲取數據中文將亂碼:

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

剛開始我猜想難道用的包【Dapper.SimpleCRUD】在映射時出了問題,于是我用Dapper進行如下查詢,依然會出現如上中文亂碼:

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

 所以由上基本可以得出結論:針對MySQL中的類型json,若json數據中存在中文,則利用Dapper查詢時將出現亂碼。那么如何解決這個問題呢?于是乎,在添加數據時,我將中文進行URL編碼,再查詢時進行解碼即可,如下:

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

當然,上述解決方案以實際項目業務而去解決,我們項目需要獲取到JSON數據中的中文然后通過URL傳輸,免去請求接口再去獲取所存儲的名稱。到此我們了解了Dapper針對json數據類型將導致查詢中文亂碼的問題,但是其根本原因是什么呢?上述連接MySQL的驅動,是使用Oracle官方所提供的驅動且為最新版本,如下:

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

我們知道通過EF Core操作MySQL數據庫,若是利用官方包有一堆問題存在,所以大多都是采用的包【Pomelo.EntityFrameworkCore.MySql】,因為里面包含【MySqlConnector】,換句話說也就存在MySQL的驅動連接,所以這里我們嘗試利用該包替換上述【MySql.Data】包,結果發現中文不再亂碼。

Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦

綜上所述,我們需要注意的是若利用官方驅動包【MySql.Data】,當配置MySQL中的列類型為json時,若json數據中存在中文,則利用Dapper查詢時將會出現中文亂碼,需要進行轉換。上述在數據庫連接字符串中我們設置為utf8mb4,所以理論上應該和編碼沒有任何關系。

“Dapper操作MySQL數據庫獲取JSON數據時中文亂碼怎么辦”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

托里县| 西丰县| 临沂市| 清水县| 辽阳市| 霍林郭勒市| 西城区| 乳源| 三门峡市| 长子县| 万载县| 福海县| 手机| 福安市| 东阿县| 曲水县| 吐鲁番市| 临猗县| 绥芬河市| 芜湖市| 岳西县| 云安县| 东安县| 焦作市| 金华市| 绥中县| 斗六市| 筠连县| 龙口市| 白山市| 大竹县| 宁陵县| 墨脱县| 红安县| 承德县| 九龙县| 淮北市| 永顺县| 鄂尔多斯市| 岳池县| 白玉县|