鐭ヤ箮闈㈣瘯瀹橈細涓轰粈涔堜笉寤鸿鍦?MySQL 涓娇鐢?UTF-8锛?/a>
来源:SegmentFault
时间:2023-02-16 15:45:03 190浏览 收藏
小伙伴们有没有觉得学习数据库很有意思?有意思就对了!今天就给大家带来《鐭ヤ箮闈㈣瘯瀹橈細涓轰粈涔堜笉寤鸿鍦?MySQL 涓娇鐢?UTF-8锛?/a>》,以下内容将会涉及到MySQL、utf-8,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!
娆㈣繋寰俊鎼滅储鍏紬鍙枫€恓ava鐗坵eb椤圭洰銆戣幏鍙栬祫婧愶細java瀛︿範瑙嗛/璁捐妯″紡绗旇/绠楁硶鎵嬪唽/java椤圭洰
璁板緱鍘诲勾鎴戝湪寰€MySQL瀛樺叆emoji琛ㄦ儏馃槻馃槼鏃讹紝涓€鐩村嚭閿欙紝鏃犳硶瀵煎叆銆傚悗鏉ユ壘鍒板姙娉?-- 閫氳繃鎶妘tf8鏀规垚utf8mb4灏卞彲浠ヤ簡锛屽苟娌℃湁娣辩┒銆?p>涓€骞村悗锛屾垜鐪嬪埌涓€绡囨枃绔犺鍒癳moji鏂囧瓧鍗?涓瓧鑺傦紝閫氬父瑕佺敤utf-8鍘绘帴鏀舵墠琛岋紝鍏朵粬缂栫爜鍙兘浼氬嚭閿欍€傛垜绐佺劧鎯冲埌鍘诲勾鎿嶄綔MySQL鎶妘tf8鏀规垚utf8mb4鐨勪簨鍎裤€?/p>鍡紵浠栨湰韬笉灏辨槸utf8缂栫爜涔堬紒閭f垜褰撴椂杩樻敼涓敜瀛愶紵
闅鹃亾锛孧ySQL鐨剈tf8涓嶆槸鐪熸鐨刄TF-8缂栫爜鍚楋紵锛? 鍗фЫ杩欍€傘€侻ySQL鏈塨ug锛?/p>
甯︾潃鐤戦棶鏌ヨ浜嗗緢澶氱浉鍏虫潗鏂欙紝鎵嶅彂鐜拌繖绔熺劧鏄疢ySQL鐨勪竴涓巻鍙查仐鐣欓棶棰榽~ 鎴戠瑧浜嗭紝娌℃兂鍒拌繖涔堢墰B鐨凪ySQL涔熶細鏈夎繖娈靛線浜嬨€?/p>
涓€銆佹姤閿欏洖椤?/h2>
灏唀moji鏂囧瓧鐩存帴鍐欏叆SQL涓紝鎵цinsert璇彞鎶ラ敊锛?/p>
INSERT INTO `csjdemo`.`student` (`ID`, `NAME`, `SEX`, `AGE`, `CLASS`, `GRADE`, `HOBBY`) VALUES ('20', '闄堝搱鍝堭煒?, '鐢?, '20', '181鐝?, '9骞寸骇', '鐪嬬墖鍎?);
*[Err] 1366 - Incorrect string value: '\xF0\x9F\x98\x93' for column 'NAME' at row 1*
鏀逛簡鏁版嵁搴撶紪鐮併€佺郴缁熺紪鐮佷互鍙婅〃瀛楁鐨勭紪鐮佹牸寮?鈫?*utf8mb4* 涔嬪悗锛屽氨鍙互浜嗭細
INSERT INTO `student` (`ID`, `NAME`, `SEX`, `AGE`, `CLASS`, `GRADE`, `HOBBY`) VALUES (null, '闄堝搱鍝堭煒擆煒?, '鐢?, '20', '181鐝?, '9骞寸骇', '鐪嬬墖鍎?);
浜屻€丮ySQL涓璾tf8鐨勮叮浜?/h2>
MySQL 鐨勨€渦tf8鈥濆疄闄呬笂涓嶆槸鐪熸鐨?UTF-8銆?/strong>
鍦∕ySQL涓紝鈥渦tf8鈥濈紪鐮佸彧鏀寔姣忎釜瀛楃鏈€澶氫笁涓瓧鑺傦紝鑰岀湡姝g殑 UTF-8 鏄瘡涓瓧绗︽渶澶氬洓涓瓧鑺傘€?/strong>
鍦╱tf8缂栫爜涓紝涓枃鏄崰3涓瓧鑺傦紝鍏朵粬鏁板瓧銆佽嫳鏂囥€佺鍙峰崰涓€涓瓧鑺傘€?/p>
浣唀moji绗﹀彿鍗?涓瓧鑺傦紝涓€浜涜緝澶嶆潅鐨勬枃瀛椼€佺箒浣撳瓧涔熸槸4涓瓧鑺傘€傛墍浠ュ鑷村啓鍏ュけ璐ワ紝搴旇鏀规垚utf8mb4銆?/strong>
濡備笂鍥句腑鎵€绀猴紝杩欐槸缂栫爜鏀规垚utf8mb4鍚庡叆搴撶殑鏁版嵁锛屽ぇ瀹跺彲浠ユ竻鏅扮殑瀵规瘮涓€涓嬫墍鍗犵殑瀛楃鏁般€佸瓧鑺傛暟銆傛鍥犲姝わ紝4瀛楄妭鐨勫唴瀹瑰線utf8缂栫爜涓彃鍏ワ紝鑲畾鏄笉琛岀殑锛屾彃涓嶈繘鍘诲晩锛屾槸鍚э紙澶ф綐鎽婃墜锛夈€?br>
MySQL 涓€鐩存病鏈変慨澶嶈繖涓?bug锛屼粬浠湪 2010 骞村彂甯冧簡涓€涓彨浣溾€渦tf8mb4鈥濈殑瀛楃闆嗭紝宸у鐨勭粫杩囦簡杩欎釜闂銆?/p>
褰撶劧锛屼粬浠苟娌℃湁瀵规柊鐨勫瓧绗﹂泦骞胯€屽憡涔嬶紙鍙兘鏄洜涓鸿繖涓?bug 璁╀粬浠寰楀緢灏村艾锛夛紝浠ヨ嚧浜庣幇鍦ㄧ綉缁滀笂浠嶇劧鍦ㄥ缓璁紑鍙戣€呬娇鐢ㄢ€渦tf8鈥濓紝浣嗚繖浜涘缓璁兘鏄敊璇殑銆?/p>
1. utf8mb4 鎵嶆槸鐪熸鐨刄TF-8
鏄殑锛孧ySQL 鐨勨€渦tf8mb4鈥濇墠鏄湡姝g殑鈥淯TF-8鈥濄€?/strong>
MySQL 鐨勨€渦tf8鈥濇槸涓€绉嶁€滀笓灞炵殑缂栫爜鈥濓紝瀹冭兘澶熺紪鐮佺殑 Unicode 瀛楃骞朵笉澶氥€?/p>
鍦ㄨ繖閲孧ark涓€涓嬶細鎵€鏈夊湪浣跨敤鈥渦tf8鈥濈殑 MySQL 鍜?MariaDB 鐢ㄦ埛閮藉簲璇ユ敼鐢ㄢ€渦tf8mb4鈥濓紝姘歌繙閮戒笉瑕佸啀浣跨敤鈥渦tf8鈥濄€?br>
閭d箞浠€涔堟槸缂栫爜锛熶粈涔堟槸 UTF-8锛?/p>
鎴戜滑閮界煡閬擄紝璁$畻鏈轰娇鐢?0 鍜?1 鏉ュ瓨鍌ㄦ枃鏈€傛瘮濡傚瓧绗︹€淐鈥濊瀛樻垚鈥?1000011鈥濓紝閭d箞璁$畻鏈哄湪鏄剧ず杩欎釜瀛楃鏃堕渶瑕佺粡杩囦袱涓楠わ細
- 璁$畻鏈鸿鍙栤€?1000011鈥濓紝寰楀埌鏁板瓧 67锛屽洜涓?67 琚紪鐮佹垚鈥?1000011鈥濄€?/li>
- 璁$畻鏈哄湪 Unicode 瀛楃闆嗕腑鏌ユ壘 67锛屾壘鍒颁簡鈥淐鈥濄€?/li>
鍚屾牱鐨勶細
- 鎴戠殑鐢佃剳灏嗏€淐鈥濇槧灏勬垚 Unicode 瀛楃闆嗕腑鐨?67銆?/li>
- 鎴戠殑鐢佃剳灏?67 缂栫爜鎴愨€?1000011鈥濓紝骞跺彂閫佺粰 Web 鏈嶅姟鍣ㄣ€?/li>
鍑犱箮鎵€鏈夌殑缃戠粶搴旂敤閮戒娇鐢ㄤ簡 Unicode 瀛楃闆嗭紝鍥犱负娌℃湁鐞嗙敱浣跨敤鍏朵粬瀛楃闆嗐€?/p>
Unicode 瀛楃闆嗗寘鍚簡涓婄櫨涓囦釜瀛楃銆傛渶绠€鍗曠殑缂栫爜鏄?UTF-32锛屾瘡涓瓧绗︿娇鐢?32 浣嶃€傝繖鏍峰仛鏈€绠€鍗曪紝鍥犱负涓€鐩翠互鏉ワ紝璁$畻鏈哄皢 32 浣嶈涓烘暟瀛楋紝鑰岃绠楁満鏈€鍦ㄨ鐨勫氨鏄鐞嗘暟瀛椼€備絾闂鏄紝杩欐牱澶氮璐圭┖闂翠簡銆?/p>
UTF-8 鍙互鑺傜渷绌洪棿锛屽湪 UTF-8 涓紝瀛楃鈥淐鈥濆彧闇€瑕?8 浣嶏紝涓€浜涗笉甯哥敤鐨勫瓧绗︼紝姣斿鈥滒煒撯€濋渶瑕?32 浣嶃€傚叾浠栫殑瀛楃鍙兘浣跨敤 16 浣嶆垨 24 浣嶃€備竴绡囩被浼兼湰鏂囪繖鏍风殑鏂囩珷锛屽鏋滀娇鐢?UTF-8 缂栫爜锛屽崰鐢ㄧ殑绌洪棿鍙湁 UTF-32 鐨勫洓鍒嗕箣涓€宸﹀彸銆?/p>
2. utf8 鐨勭畝鍙?/h3>
涓轰粈涔?MySQL 寮€鍙戣€呬細璁┾€渦tf8鈥濆け鏁堬紵鎴戜滑鎴栬鍙互浠嶮ySQL鐗堟湰鎻愪氦鏃ュ織涓鎵剧瓟妗堛€?/p>
MySQL 浠?4.1 鐗堟湰寮€濮嬫敮鎸?UTF-8锛屼篃灏辨槸 2003 骞达紝鑰屼粖澶╀娇鐢ㄧ殑 UTF-8 鏍囧噯锛圧FC 3629锛夋槸闅忓悗鎵嶅嚭鐜扮殑銆?/p>
鏃х増鐨?UTF-8 鏍囧噯锛圧FC 2279锛夋渶澶氭敮鎸佹瘡涓瓧绗?6 涓瓧鑺傘€?002 骞?3 鏈?28 鏃ワ紝MySQL 寮€鍙戣€呭湪绗竴涓?MySQL 4.1 棰勮鐗堜腑浣跨敤浜?RFC 2279銆?/p>
鍚屽勾 9 鏈堬紝浠栦滑瀵?MySQL 婧愪唬鐮佽繘琛屼簡涓€娆¤皟鏁达細鈥淯TF8 鐜板湪鏈€澶氬彧鏀寔 3 涓瓧鑺傜殑搴忓垪鈥濄€?/p>
鏄皝鎻愪氦浜嗚繖浜涗唬鐮侊紵浠栦负浠€涔堣杩欐牱鍋氾紵杩欎釜闂涓嶅緱鑰岀煡銆傚湪杩佺Щ鍒?Git 鍚庯紙MySQL 鏈€寮€濮嬩娇鐢ㄧ殑鏄?BitKeeper锛夛紝MySQL 浠g爜搴撲腑鐨勫緢澶氭彁浜よ€呯殑鍚嶅瓧閮戒涪澶变簡銆?003 骞?9 鏈堢殑閭欢鍒楄〃涓篃鎵句笉鍒板彲浠ヨВ閲婅繖涓€鍙樻洿鐨勭嚎绱€?/p>
涓嶈繃鎴戜滑鍙互璇曠潃鐚滄祴涓€涓嬶細
2002骞达紝MySQL鍋氬嚭浜嗕竴涓喅瀹氾細濡傛灉鐢ㄦ埛鍙互淇濊瘉鏁版嵁琛ㄧ殑姣忎竴琛岄兘浣跨敤鐩稿悓鐨勫瓧鑺傛暟锛岄偅涔?MySQL 灏卞彲浠ュ湪鎬ц兘鏂归潰鏉ヤ竴涓ぇ鎻愬崌銆備负姝わ紝鐢ㄦ埛闇€瑕佸皢鏂囨湰鍒楀畾涔変负鈥淐HAR鈥濓紝姣忎釜鈥淐HAR鈥濆垪鎬绘槸鎷ユ湁鐩稿悓鏁伴噺鐨勫瓧绗︺€傚鏋滄彃鍏ョ殑瀛楃灏戜簬瀹氫箟鐨勬暟閲忥紝MySQL 灏变細鍦ㄥ悗闈㈠~鍏呯┖鏍硷紝濡傛灉鎻掑叆鐨勫瓧绗﹁秴杩囦簡瀹氫箟鐨勬暟閲忥紝鍚庨潰瓒呭嚭閮ㄥ垎浼氳鎴柇銆?/p>
MySQL 寮€鍙戣€呭湪鏈€寮€濮嬪皾璇?UTF-8 鏃朵娇鐢ㄤ簡姣忎釜瀛楃6涓瓧鑺傦紝CHAR(1) 浣跨敤6涓瓧鑺傦紝CHAR(2)浣跨敤12涓瓧鑺傦紝骞朵互姝ょ被鎺ㄣ€?/p>
搴旇璇达紝浠栦滑鏈€鍒濈殑琛屼负鎵嶆槸姝g‘鐨勶紝鍙儨杩欎竴鐗堟湰涓€鐩存病鏈夊彂甯冦€備絾鏄枃妗d笂鍗磋繖涔堝啓浜嗭紝鑰屼笖骞夸负娴佷紶锛屾墍鏈変簡瑙?UTF-8 鐨勪汉閮借鍚屾枃妗i噷鍐欑殑涓滆タ銆?/p>
涓嶈繃寰堟樉鐒讹紝MySQL 寮€鍙戣€呮垨鍘傚晢鎷呭績浼氭湁鐢ㄦ埛鍋氳繖涓や欢浜嬶細
- 浣跨敤 CHAR 瀹氫箟鍒楋紙鍦ㄧ幇鍦ㄧ湅鏉ワ紝CHAR 宸茬粡鏄€佸彜钁d簡锛屼絾鍦ㄩ偅鏃讹紝鍦?MySQL 涓娇鐢?CHAR 浼氭洿蹇紝涓嶈繃浠?2005 骞翠互鍚庡氨涓嶆槸杩欐牱瀛愪簡锛夈€?/li>
- 灏?CHAR 鍒楃殑缂栫爜璁剧疆涓衡€渦tf8鈥濄€?/li>
鎴戠殑鐚滄祴鏄?MySQL 寮€鍙戣€呮湰鏉ユ兂甯姪閭d簺甯屾湜鍦ㄧ┖闂村拰閫熷害涓婂弻璧㈢殑鐢ㄦ埛锛屼絾浠栦滑鎼炵牳浜嗏€渦tf8鈥濈紪鐮併€?/p>
鎵€浠ョ粨鏋滃氨鏄病鏈夎耽瀹躲€傞偅浜涘笇鏈涘湪绌洪棿鍜岄€熷害涓婂弻璧㈢殑鐢ㄦ埛锛屽綋浠栦滑鍦ㄤ娇鐢ㄢ€渦tf8鈥濈殑 CHAR 鍒楁椂锛屽疄闄呬笂浣跨敤鐨勭┖闂存瘮棰勬湡鐨勬洿澶э紝閫熷害涔熸瘮棰勬湡鐨勬參銆傝€屾兂瑕佹纭€х殑鐢ㄦ埛锛屽綋浠栦滑浣跨敤鈥渦tf8鈥濈紪鐮佹椂锛屽嵈鏃犳硶淇濆瓨鍍忊€滒煒撯€濊繖鏍风殑瀛楃锛屽洜涓衡€滒煒撯€濇槸4涓瓧鑺傜殑銆?/p>
鍦ㄨ繖涓笉鍚堟硶鐨勫瓧绗﹂泦鍙戝竷浜嗕箣鍚庯紝MySQL 灏辨棤娉曚慨澶嶅畠锛屽洜涓鸿繖鏍烽渶瑕佽姹傛墍鏈夌敤鎴烽噸鏂版瀯寤轰粬浠殑鏁版嵁搴撱€傛渶缁堬紝MySQL 鍦?2010 骞撮噸鏂板彂甯冧簡鈥渦tf8mb4鈥濇潵鏀寔鐪熸鐨?UTF-8銆?/p>
涓夈€佹€荤粨
涓昏鏄洰鍓嶇綉缁滀笂鍑犱箮鎵€鏈夌殑鏂囩珷閮芥妸 鈥渦tf8鈥?褰撴垚鏄湡姝g殑 UTF-8锛屽寘鎷箣鍓嶆垜鍐欑殑鏂囩珷浠ュ強鍋氱殑椤圭洰锛堟崅鑴革級锛涘洜姝ゅ笇鏈涙洿澶氱殑鏈嬪弸鑳藉鐪嬪埌杩欑瘒鏂囩珷銆?/p>
鐩镐俊杩樻湁寰堝璺熸垜鍦ㄥ悓涓€鏉¤埞涓婄殑浜猴紝杩欐槸蹇呯劧鐨勩€?/p>
鎵€浠ワ紝澶у浠ュ悗鍐嶆惌寤篗ySQL銆丮ariaDB鏁版嵁搴撴椂锛岃寰楀皢鏁版嵁搴撶浉搴旂紪鐮侀兘鏀逛负utf8mb4銆?/strong>缁堟湁涓€澶╋紝鎺ヤ綘鐝効鐨勭▼搴忓憳鍙戞垨浣犵殑棰嗗鐜拌繖涓棶棰樺悗锛屼竴瀹氫細鍦ㄥ績閲岄粯榛樻劅鍒颁綘鐨勬妧鏈墰B銆?/p> 杩戞湡鐑枃鎺ㄨ崘锛?/strong> 好了,本文到此结束,带大家了解了《鐭ヤ箮闈㈣瘯瀹橈細涓轰粈涔堜笉寤鸿鍦?MySQL 涓娇鐢?UTF-8锛?/a>》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!浣滆€咃細_闄堝搱鍝?br>鏉ユ簮https://blog.csdn.net/qq_3939...
SpringCloud寰湇鍔$數鍟嗛」鐩暀绋?/a>
-
499 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
101 收藏
-
420 收藏
-
165 收藏
-
397 收藏
-
489 收藏
-
209 收藏
-
497 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习