溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL中GBK字符集和UTF8字符編碼的相關(guān)操作

發(fā)布時(shí)間:2020-06-01 13:48:10 來源:網(wǎng)絡(luò) 閱讀:314 作者:三月 欄目:MySQL數(shù)據(jù)庫

下面講講關(guān)于MySQL中GBK字符集和UTF8字符編碼的相關(guān)操作,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL中GBK字符集和UTF8字符編碼的相關(guān)操作這篇文章你一定會(huì)有所受益。

GBK 和UTF8的實(shí)際在系統(tǒng)里面的存放方式: 

1、GBK:

> SELECT hex(convert('你好' using gbk));

+----------------------------------+

| hex(convert('你好' using gbk))   |

|----------------------------------|

| C4E3BAC3                |

+----------------------------------+ 

GBK字符集是按照4個(gè)長(zhǎng)度來分割的,因此得出對(duì)應(yīng)關(guān)系:

你 --> C4E3

好 --> BAC3 

2、UTF-8:

> SELECT hex(convert('你好' using utf8));

+-----------------------------------+

| hex(convert('你好' using utf8))   |

|-----------------------------------|

| E4BDA0E5A5BD           |

+-----------------------------------+ 

UTF8字符集是按照6個(gè)長(zhǎng)度來分割的,因此得出對(duì)應(yīng)關(guān)系:

你 --> E4BDA0

好 --> E5A5BD 

這樣我們就能發(fā)現(xiàn)不同的地方了。假如我們用的是UTF-8存進(jìn)去的"你好"(對(duì)應(yīng)的底層存儲(chǔ)為:E4BDA0E5A5BD),但是使用GBK的方式來讀取的話,GBK會(huì)對(duì)E4BDA0E5A5BD按照每4個(gè)bit長(zhǎng)度切分,最終切分成E4BD A0E5 A5BD 這個(gè)樣子。

(如下)

> SELECT CONVERT( unhex('E4BDA0E5A5BD') USING GBK);

+-------------------------------------------+

| CONVERT( unhex('E4BDA0E5A5BD') USING GBK) |

+-------------------------------------------+

| 浣犲ソ                                    |   ---> 采用GBK的方式讀出來就成亂碼了

+-------------------------------------------+

> SELECT hex(convert('浣' using gbk));

+-------------------------------+

| hex(convert('浣' using gbk)) |

+-------------------------------+

| E4BD                         |

+-------------------------------+

> SELECT hex(convert('犲' using gbk));

+-------------------------------+

| hex(convert('犲' using gbk)) |

+-------------------------------+

| A0E5                         |

+-------------------------------+

> SELECT hex(convert('ソ' using gbk));

+-------------------------------+

| hex(convert('ソ' using gbk)) |

+-------------------------------+

| A5BD                         |

+-------------------------------+

補(bǔ)充,將16進(jìn)制的編碼反推成UTF8編碼的漢字:

> SELECT CONVERT( unhex('E4BDA0E5A5BD') USING utf8);

+--------------------------------------------+

| CONVERT( unhex('E4BDA0E5A5BD') USING utf8) |

+--------------------------------------------+

| 你好                                       |

+--------------------------------------------+

> SELECT CONVERT( unhex('E4BDA0E5A5BD') USING GBK);

+-------------------------------------------+

| CONVERT( unhex('E4BDA0E5A5BD') USING GBK) |

+-------------------------------------------+

| 浣犲ソ                                    |   ---> 采用GBK的方式讀出來就成亂碼了

+-------------------------------------------+

對(duì)于以上MySQL中GBK字符集和UTF8字符編碼的相關(guān)操作相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI