濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > MySQL字符集utf8修改為utf8mb4的方法步驟

MySQL字符集utf8修改為utf8mb4的方法步驟

熱門標(biāo)簽:悟空科技電話機(jī)器人 美國反騷擾電話機(jī)器人 怎么在地圖標(biāo)注位置生成圖片 福建外呼系統(tǒng)定制化 電銷卡外呼系統(tǒng)供應(yīng)商 400電話可以免費(fèi)申請嗎 真人語音電話機(jī)器人 騰訊地圖標(biāo)注提升 銅陵防封電銷卡

對于mysql 5.5 而言,如果不設(shè)定字符集,mysql默認(rèn)的字符集是 latin1 拉丁文字符集;

但隨著各種業(yè)務(wù)的進(jìn)一步發(fā)展,除了各個(gè)國家的本身語言字符,經(jīng)常也會(huì)有一些表情符號出現(xiàn)在應(yīng)用程序中,而在mysql 5.5 之前,UTF-8編碼只支持1-3個(gè)字節(jié),支持BMP這部分的Unicode編碼區(qū);從MySQL 5.5開始,可以支持4個(gè)字節(jié)UTF編碼 utf8mb4 ,一個(gè)字符能夠支持更多的字符集,也能夠支持更多表情符號。

utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集。所以現(xiàn)在一些新的業(yè)務(wù),比如ISO等,會(huì)將MySQL數(shù)據(jù)庫的字符集設(shè)置為utf8mb4。

今天在處理一個(gè)應(yīng)用需求的時(shí)候,就遇到這樣一個(gè)問題:

當(dāng)然調(diào)整的最好方法是客戶端,mysql數(shù)據(jù)庫的字符集都修改為utf8mb4,但這樣修改量比較大,而且如果客戶端一部分修改為utf8,一部分為utf8mb4的話,容易發(fā)生混亂。

經(jīng)過幾次測試后,MySQL數(shù)據(jù)庫的my.cnf中關(guān)于字符集的配置修改為下面的配置了:

[client] 
default-character-set=utf8mb4 
 
[mysqld] 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4' 
skip-character-set-client-handshake = true 
 
[mysql] 
default-character-set = utf8mb4 

使用MySQL字符集時(shí)的建議

• 建立數(shù)據(jù)庫/表和進(jìn)行數(shù)據(jù)庫操作時(shí)盡量顯式指出使用的字符集,而不是依賴于MySQL的默認(rèn)設(shè)置,否則MySQL升級時(shí)可能帶來很大困擾;

• 數(shù)據(jù)庫和連接字符集都使用latin1時(shí)雖然大部分情況下都可以解決亂碼問題,但缺點(diǎn)是無法以字符為單位來進(jìn)行SQL操作,一般情況下將數(shù)據(jù)庫和連接字符集都置為utf8是較好的選擇;

• 使用mysql C API時(shí),初始化數(shù)據(jù)庫句柄后馬上用mysql_options設(shè)定MYSQL_SET_CHARSET_NAME屬性為utf8,這樣就不用顯式地用 SET NAMES語句指定連接字符集,且用mysql_ping重連斷開的長連接時(shí)也會(huì)把連接字符集重置為utf8;

• 對于mysql PHP API,一般頁面級的PHP程序總運(yùn)行時(shí)間較短,在連接到數(shù)據(jù)庫以后顯式用SET NAMES語句設(shè)置一次連接字符集即可;但當(dāng)使用長連接時(shí),請注意保持連接通暢并在斷開重連后用SET NAMES語句顯式重置連接字符集。

全面了解mysql中utf8和utf8mb4的區(qū)別:https://www.jb51.net/article/90037.htm

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MySQL查看與修改字符集的方法實(shí)例教程
  • 如何修改MySQL字符集
  • MAC下修改mysql默認(rèn)字符集為utf8的方法
  • mysql 啟動(dòng)1067錯(cuò)誤及修改字符集重啟之后復(fù)原無效問題
  • Linux下MySQL 5.5/5.6的修改字符集編碼為UTF8的方法
  • MySQL修改默認(rèn)字符集編碼的方法
  • mysql通過my.cnf修改默認(rèn)字符集為utf-8的方法和注意事項(xiàng)
  • MySql表、字段、庫的字符集修改及查看方法
  • mysql修改數(shù)據(jù)庫編碼(數(shù)據(jù)庫字符集)和表的字符編碼的方法
  • 修改mysql默認(rèn)字符集的兩種方法詳細(xì)解析
  • mysql字符集和數(shù)據(jù)庫引擎修改方法分享
  • MySQL修改字符集的實(shí)戰(zhàn)教程

標(biāo)簽:烏海 湖南 武威 聊城 臨汾 湖北 云浮 白銀

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL字符集utf8修改為utf8mb4的方法步驟》,本文關(guān)鍵詞  MySQL,字符集,utf8,修,改為,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL字符集utf8修改為utf8mb4的方法步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL字符集utf8修改為utf8mb4的方法步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    临沭县| 托克逊县| 繁昌县| 永仁县| 马龙县| 巩义市| 江口县| 凤翔县| 余干县| 临城县| 克拉玛依市| 肇源县| 田东县| 彭泽县| 永清县| 兰西县| 柘城县| 南皮县| 阿尔山市| 将乐县| 郧西县| 岗巴县| 沙湾县| 库尔勒市| 香港| 将乐县| 卢氏县| 宜州市| 偃师市| 洛阳市| 巨鹿县| 永胜县| 嘉鱼县| 包头市| 亚东县| 青浦区| 类乌齐县| 信丰县| 稻城县| 尚义县| 绍兴县|