真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL中不能使用UTF-8編碼方式的原因-創(chuàng)新互聯(lián)

下面一起來(lái)了解下MySQL中不能使用UTF-8編碼方式的原因,相信大家看完肯定會(huì)受益匪淺,文字在精不在多,希望MySQL中不能使用UTF-8編碼方式的原因這篇短內(nèi)容是你想要的。                                                          MySQL中不能使用UTF-8編碼方式的原因

成都創(chuàng)新互聯(lián)專注于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。MySQL的UTF-8編碼方式

MySQL 從 4.1 版本開(kāi)始支持 UTF-8,也就是 2003 年,然而目前流行的UTF-8 標(biāo)準(zhǔn)(RFC 3629)是在此之后規(guī)定的。正因此,才造就了MySQL中的UTF-8與我們?nèi)粘i_(kāi)發(fā)中的UTF-8不一致,從到導(dǎo)致了些問(wèn)題。MySQL的UTF-8只支持每個(gè)字符最多三個(gè)字節(jié),而真正的 UTF-8 是每個(gè)字符最多四個(gè)字節(jié)。

問(wèn)題復(fù)現(xiàn)

有數(shù)據(jù)庫(kù)表如下:utf8編碼方式

MySQL中不能使用UTF-8編碼方式的原因

往數(shù)據(jù)庫(kù)存一條記錄:

@Test public void testInsert() {     User user = new User();     user.setUsername("\uD83D\uDE00 ");     user.setPassword("123456");     userRepo.save(user); }

這里只是部分代碼,看不懂沒(méi)關(guān)系,這里是給user表插入一條記錄。其中username是\uD83D\uDE00 。

其實(shí)\uD83D\uDE00是一個(gè)emoji表情。

MySQL中不能使用UTF-8編碼方式的原因

因?yàn)镸ySQL中utf8字符集只支持三字節(jié)UTF-8編碼的Unicode范圍,而emoji字符屬于四字節(jié)編碼部分,所以程序運(yùn)行預(yù)期是會(huì)報(bào)錯(cuò)的。運(yùn)行這段代碼:

MySQL中不能使用UTF-8編碼方式的原因

與預(yù)期一致,報(bào)錯(cuò)了。

解決問(wèn)題

雖然MySQL的UTF-8存在缺陷,但是MySQL(包括mariadb)官方卻沒(méi)有修復(fù)此bug,而是通過(guò)2010年重新發(fā)布的“utf8mb4”來(lái)支持真正的 UTF-8。因此想要解決此問(wèn)題,只能夠?qū)ySQL數(shù)據(jù)庫(kù)設(shè)置為utf8mb4字符集才行。

總結(jié)

這個(gè)問(wèn)題,也是因?yàn)槟炒伪4鏀?shù)據(jù)的時(shí)候保存了一個(gè)emoji表情才發(fā)現(xiàn)的。其實(shí)最早開(kāi)始用MySQL的時(shí)候,就有發(fā)現(xiàn)一個(gè)utf8mb4了,但是自己卻沒(méi)有卻去了解UTF8和UTF8MB4的區(qū)別。通過(guò)此次教訓(xùn),以后使用MySQL就老老實(shí)實(shí)的設(shè)置字符集為utf8mb4吧。

看完MySQL中不能使用UTF-8編碼方式的原因這篇文章后,很多讀者朋友肯定會(huì)想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。


當(dāng)前題目:MySQL中不能使用UTF-8編碼方式的原因-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://weahome.cn/article/djhchj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部