欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql?亂碼字符?latin1?characters?轉(zhuǎn)換為?UTF8詳情

 更新時(shí)間:2022年04月19日 08:37:26   作者:華大哥  
這篇文章主要介紹了mysql?亂碼字符?latin1?characters?轉(zhuǎn)換為?UTF8詳情,文章基于MySQL的相關(guān)資料展開詳細(xì)內(nèi)容。需要的小伙伴可以參考一下

背景:目前正在進(jìn)行業(yè)務(wù)重構(gòu),需要對(duì)使用MySQL的業(yè)務(wù)庫(kù)表進(jìn)行重新設(shè)計(jì),在遷移時(shí),遇到了中文字符亂碼問題(源庫(kù)表的默認(rèn)編碼是LATIN1,新庫(kù)表的默認(rèn)編碼為UTF8),故重新學(xué)習(xí)了下MySQL編碼和解碼相關(guān)知識(shí),并整理了在遭遇亂碼時(shí)的一些常用技巧。

比如我下面一張表是省市區(qū)的編碼存儲(chǔ),導(dǎo)入之后數(shù)據(jù)庫(kù)變成如下的亂碼: 

這個(gè)實(shí)際上是latin1字符編碼。

如果我們直接查的話,那么需要轉(zhuǎn)換一下:

select id,parent_code,area_code,CONVERT(CAST(CONVERT(name USING LATIN1) AS BINARY) USING UTF8) from cnarea_2020 ?where parent_code ='110000000000' or parent_code ='110101001000'?

 可以看到如下:

 已經(jīng)轉(zhuǎn)成tf8的編碼了,已經(jīng)正常了!

如果我們要使用查詢的字段里面包含亂碼,我們可以這樣使用:

?select * from (select id,parent_code,area_code,CONVERT(CAST(CONVERT(name USING LATIN1) AS BINARY) USING UTF8) as name from cnarea_2020 ?where city_code ='010') as t where t.name like '%王府井%'

也就是先把查詢的目標(biāo)轉(zhuǎn)成utf8,然后再進(jìn)行查詢.

當(dāng)然了,以上是在遷移后,庫(kù)中是亂碼的情況下,進(jìn)行操作的,那我們需要把編碼轉(zhuǎn)成utf8這樣不用去改寫代碼,免去不必要的麻煩!

處理前的編碼如下:

使用如下的操作:

?UPDATE cnarea_2020 SET?
? ? name=convert(cast(convert(name using ?latin1) as binary) using utf8),?
? ? short_name=convert(cast(convert(short_name using ?latin1) as binary) using utf8),?
? ? merger_name=convert(cast(convert(merger_name using ?latin1) as binary) using utf8)
WHERE 1=1

 處理后的編碼如下:

這個(gè)時(shí)候可以直接查詢,不用進(jìn)行轉(zhuǎn)換了! 

 現(xiàn)在已經(jīng)是正常的編碼了,遷移就成功了,不用再去改代碼來處理了!

到此這篇關(guān)于mysql 亂碼字符 latin1 characters 轉(zhuǎn)換為 UTF8詳情的文章就介紹到這了,更多相關(guān)mysql 亂碼轉(zhuǎn)為 UTF8內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論