文章目录

  • 字符集
    • 字符集概念
    • MySQL字符集
    • 乱码问题解决
    • 字符集设置原理
    • 总结
  • 校对集
    • 校对集概念
    • 校对集设置
    • 校对集应用
    • 总结

字符集

目标:了解字符集的概念,掌握MySQL数据库存储数据的字符集逻辑以及设置方式

  • 字符集概念
  • MySQL字符集关系
  • 解决乱码问题
  • 字符集设置原理

字符集概念

字符集:charset或者character set,是各种文字符号在计算机中的总称

  • 字符集根据不同国家的符号不同,有不同的字符集
  • 不同的字符集占用的存储空间不一样,存储的底层也不一样
  • 不同字符集之间可以进行转换
  • 常见字符集
    • ASCII:美国信息交换标准码,一般英文符号,一个字节存储
    • latin1:拉丁文字符集,一个字节存储,ISO-8859-1的别名 ,能够向下兼容ASCII
    • GB2312:信息交换用汉字编码字符集 ,是中国1981年的一套国标规范,2个字节存储
    • GBK:汉字内码扩展规范(1995年),两个字节表示表示(汉字很多超过5000个)
    • Unicode:万国码(统一码),使用统一的编码方式来解决传统的局限,1994年出现
    • UTF-8:8-bit Unicode Transformation Format(万国码) ,针对Unicode的可变长度字符编码,采用1-6个字节编码Unicode字符(目前通用编码规则)。建议使用UTF-8字符集进行数据存储(MySQL8中建议使用utf8mb4)

原理流程图:

1、数据存储

#mermaid-svg-fewQSCleAGbtY4RV .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-fewQSCleAGbtY4RV .label text{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .node rect,#mermaid-svg-fewQSCleAGbtY4RV .node circle,#mermaid-svg-fewQSCleAGbtY4RV .node ellipse,#mermaid-svg-fewQSCleAGbtY4RV .node polygon,#mermaid-svg-fewQSCleAGbtY4RV .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-fewQSCleAGbtY4RV .node .label{text-align:center;fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .node.clickable{cursor:pointer}#mermaid-svg-fewQSCleAGbtY4RV .arrowheadPath{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-fewQSCleAGbtY4RV .flowchart-link{stroke:#333;fill:none}#mermaid-svg-fewQSCleAGbtY4RV .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-fewQSCleAGbtY4RV .edgeLabel rect{opacity:0.9}#mermaid-svg-fewQSCleAGbtY4RV .edgeLabel span{color:#333}#mermaid-svg-fewQSCleAGbtY4RV .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-fewQSCleAGbtY4RV .cluster text{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-fewQSCleAGbtY4RV .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-fewQSCleAGbtY4RV text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-fewQSCleAGbtY4RV .actor-line{stroke:grey}#mermaid-svg-fewQSCleAGbtY4RV .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-fewQSCleAGbtY4RV .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-fewQSCleAGbtY4RV #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-fewQSCleAGbtY4RV .sequenceNumber{fill:#fff}#mermaid-svg-fewQSCleAGbtY4RV #sequencenumber{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV #crosshead path{fill:#333;stroke:#333}#mermaid-svg-fewQSCleAGbtY4RV .messageText{fill:#333;stroke:#333}#mermaid-svg-fewQSCleAGbtY4RV .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-fewQSCleAGbtY4RV .labelText,#mermaid-svg-fewQSCleAGbtY4RV .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-fewQSCleAGbtY4RV .loopText,#mermaid-svg-fewQSCleAGbtY4RV .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-fewQSCleAGbtY4RV .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-fewQSCleAGbtY4RV .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-fewQSCleAGbtY4RV .noteText,#mermaid-svg-fewQSCleAGbtY4RV .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-fewQSCleAGbtY4RV .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-fewQSCleAGbtY4RV .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-fewQSCleAGbtY4RV .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-fewQSCleAGbtY4RV .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .section{stroke:none;opacity:0.2}#mermaid-svg-fewQSCleAGbtY4RV .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-fewQSCleAGbtY4RV .section2{fill:#fff400}#mermaid-svg-fewQSCleAGbtY4RV .section1,#mermaid-svg-fewQSCleAGbtY4RV .section3{fill:#fff;opacity:0.2}#mermaid-svg-fewQSCleAGbtY4RV .sectionTitle0{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .sectionTitle1{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .sectionTitle2{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .sectionTitle3{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-fewQSCleAGbtY4RV .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .grid path{stroke-width:0}#mermaid-svg-fewQSCleAGbtY4RV .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-fewQSCleAGbtY4RV .task{stroke-width:2}#mermaid-svg-fewQSCleAGbtY4RV .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .taskText:not([font-size]){font-size:11px}#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-fewQSCleAGbtY4RV .task.clickable{cursor:pointer}#mermaid-svg-fewQSCleAGbtY4RV .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-fewQSCleAGbtY4RV .taskText0,#mermaid-svg-fewQSCleAGbtY4RV .taskText1,#mermaid-svg-fewQSCleAGbtY4RV .taskText2,#mermaid-svg-fewQSCleAGbtY4RV .taskText3{fill:#fff}#mermaid-svg-fewQSCleAGbtY4RV .task0,#mermaid-svg-fewQSCleAGbtY4RV .task1,#mermaid-svg-fewQSCleAGbtY4RV .task2,#mermaid-svg-fewQSCleAGbtY4RV .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutside0,#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutside2{fill:#000}#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutside1,#mermaid-svg-fewQSCleAGbtY4RV .taskTextOutside3{fill:#000}#mermaid-svg-fewQSCleAGbtY4RV .active0,#mermaid-svg-fewQSCleAGbtY4RV .active1,#mermaid-svg-fewQSCleAGbtY4RV .active2,#mermaid-svg-fewQSCleAGbtY4RV .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-fewQSCleAGbtY4RV .activeText0,#mermaid-svg-fewQSCleAGbtY4RV .activeText1,#mermaid-svg-fewQSCleAGbtY4RV .activeText2,#mermaid-svg-fewQSCleAGbtY4RV .activeText3{fill:#000 !important}#mermaid-svg-fewQSCleAGbtY4RV .done0,#mermaid-svg-fewQSCleAGbtY4RV .done1,#mermaid-svg-fewQSCleAGbtY4RV .done2,#mermaid-svg-fewQSCleAGbtY4RV .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-fewQSCleAGbtY4RV .doneText0,#mermaid-svg-fewQSCleAGbtY4RV .doneText1,#mermaid-svg-fewQSCleAGbtY4RV .doneText2,#mermaid-svg-fewQSCleAGbtY4RV .doneText3{fill:#000 !important}#mermaid-svg-fewQSCleAGbtY4RV .crit0,#mermaid-svg-fewQSCleAGbtY4RV .crit1,#mermaid-svg-fewQSCleAGbtY4RV .crit2,#mermaid-svg-fewQSCleAGbtY4RV .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-fewQSCleAGbtY4RV .activeCrit0,#mermaid-svg-fewQSCleAGbtY4RV .activeCrit1,#mermaid-svg-fewQSCleAGbtY4RV .activeCrit2,#mermaid-svg-fewQSCleAGbtY4RV .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-fewQSCleAGbtY4RV .doneCrit0,#mermaid-svg-fewQSCleAGbtY4RV .doneCrit1,#mermaid-svg-fewQSCleAGbtY4RV .doneCrit2,#mermaid-svg-fewQSCleAGbtY4RV .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-fewQSCleAGbtY4RV .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-fewQSCleAGbtY4RV .milestoneText{font-style:italic}#mermaid-svg-fewQSCleAGbtY4RV .doneCritText0,#mermaid-svg-fewQSCleAGbtY4RV .doneCritText1,#mermaid-svg-fewQSCleAGbtY4RV .doneCritText2,#mermaid-svg-fewQSCleAGbtY4RV .doneCritText3{fill:#000 !important}#mermaid-svg-fewQSCleAGbtY4RV .activeCritText0,#mermaid-svg-fewQSCleAGbtY4RV .activeCritText1,#mermaid-svg-fewQSCleAGbtY4RV .activeCritText2,#mermaid-svg-fewQSCleAGbtY4RV .activeCritText3{fill:#000 !important}#mermaid-svg-fewQSCleAGbtY4RV .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-fewQSCleAGbtY4RV g.classGroup text .title{font-weight:bolder}#mermaid-svg-fewQSCleAGbtY4RV g.clickable{cursor:pointer}#mermaid-svg-fewQSCleAGbtY4RV g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-fewQSCleAGbtY4RV g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-fewQSCleAGbtY4RV .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-fewQSCleAGbtY4RV .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-fewQSCleAGbtY4RV .dashed-line{stroke-dasharray:3}#mermaid-svg-fewQSCleAGbtY4RV #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV .commit-id,#mermaid-svg-fewQSCleAGbtY4RV .commit-msg,#mermaid-svg-fewQSCleAGbtY4RV .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-fewQSCleAGbtY4RV g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-fewQSCleAGbtY4RV g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-fewQSCleAGbtY4RV g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-fewQSCleAGbtY4RV .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-fewQSCleAGbtY4RV .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-fewQSCleAGbtY4RV .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-fewQSCleAGbtY4RV .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-fewQSCleAGbtY4RV .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-fewQSCleAGbtY4RV .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-fewQSCleAGbtY4RV .edgeLabel text{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-fewQSCleAGbtY4RV .node circle.state-start{fill:black;stroke:black}#mermaid-svg-fewQSCleAGbtY4RV .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-fewQSCleAGbtY4RV #statediagram-barbEnd{fill:#9370db}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-state .divider{stroke:#9370db}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-fewQSCleAGbtY4RV .note-edge{stroke-dasharray:5}#mermaid-svg-fewQSCleAGbtY4RV .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-fewQSCleAGbtY4RV .error-icon{fill:#522}#mermaid-svg-fewQSCleAGbtY4RV .error-text{fill:#522;stroke:#522}#mermaid-svg-fewQSCleAGbtY4RV .edge-thickness-normal{stroke-width:2px}#mermaid-svg-fewQSCleAGbtY4RV .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-fewQSCleAGbtY4RV .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-fewQSCleAGbtY4RV .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-fewQSCleAGbtY4RV .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-fewQSCleAGbtY4RV .marker{fill:#333}#mermaid-svg-fewQSCleAGbtY4RV .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-fewQSCleAGbtY4RV {color: rgba(0, 0, 0, 0.75);font: ;}

ASCII
GBK
ASCII 存储中文
输入符号
A
计算机存储
字符集选择
转码
01000001
转码
0000000001000001
转码
乱码
存储

2、数据读取

#mermaid-svg-hgjbMqBovxOomkpe .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-hgjbMqBovxOomkpe .label text{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .node rect,#mermaid-svg-hgjbMqBovxOomkpe .node circle,#mermaid-svg-hgjbMqBovxOomkpe .node ellipse,#mermaid-svg-hgjbMqBovxOomkpe .node polygon,#mermaid-svg-hgjbMqBovxOomkpe .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hgjbMqBovxOomkpe .node .label{text-align:center;fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .node.clickable{cursor:pointer}#mermaid-svg-hgjbMqBovxOomkpe .arrowheadPath{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-hgjbMqBovxOomkpe .flowchart-link{stroke:#333;fill:none}#mermaid-svg-hgjbMqBovxOomkpe .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-hgjbMqBovxOomkpe .edgeLabel rect{opacity:0.9}#mermaid-svg-hgjbMqBovxOomkpe .edgeLabel span{color:#333}#mermaid-svg-hgjbMqBovxOomkpe .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-hgjbMqBovxOomkpe .cluster text{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-hgjbMqBovxOomkpe .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hgjbMqBovxOomkpe text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-hgjbMqBovxOomkpe .actor-line{stroke:grey}#mermaid-svg-hgjbMqBovxOomkpe .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-hgjbMqBovxOomkpe .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-hgjbMqBovxOomkpe #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-hgjbMqBovxOomkpe .sequenceNumber{fill:#fff}#mermaid-svg-hgjbMqBovxOomkpe #sequencenumber{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe #crosshead path{fill:#333;stroke:#333}#mermaid-svg-hgjbMqBovxOomkpe .messageText{fill:#333;stroke:#333}#mermaid-svg-hgjbMqBovxOomkpe .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hgjbMqBovxOomkpe .labelText,#mermaid-svg-hgjbMqBovxOomkpe .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-hgjbMqBovxOomkpe .loopText,#mermaid-svg-hgjbMqBovxOomkpe .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-hgjbMqBovxOomkpe .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-hgjbMqBovxOomkpe .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hgjbMqBovxOomkpe .noteText,#mermaid-svg-hgjbMqBovxOomkpe .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-hgjbMqBovxOomkpe .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-hgjbMqBovxOomkpe .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-hgjbMqBovxOomkpe .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-hgjbMqBovxOomkpe .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .section{stroke:none;opacity:0.2}#mermaid-svg-hgjbMqBovxOomkpe .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-hgjbMqBovxOomkpe .section2{fill:#fff400}#mermaid-svg-hgjbMqBovxOomkpe .section1,#mermaid-svg-hgjbMqBovxOomkpe .section3{fill:#fff;opacity:0.2}#mermaid-svg-hgjbMqBovxOomkpe .sectionTitle0{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .sectionTitle1{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .sectionTitle2{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .sectionTitle3{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-hgjbMqBovxOomkpe .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .grid path{stroke-width:0}#mermaid-svg-hgjbMqBovxOomkpe .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-hgjbMqBovxOomkpe .task{stroke-width:2}#mermaid-svg-hgjbMqBovxOomkpe .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .taskText:not([font-size]){font-size:11px}#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-hgjbMqBovxOomkpe .task.clickable{cursor:pointer}#mermaid-svg-hgjbMqBovxOomkpe .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hgjbMqBovxOomkpe .taskText0,#mermaid-svg-hgjbMqBovxOomkpe .taskText1,#mermaid-svg-hgjbMqBovxOomkpe .taskText2,#mermaid-svg-hgjbMqBovxOomkpe .taskText3{fill:#fff}#mermaid-svg-hgjbMqBovxOomkpe .task0,#mermaid-svg-hgjbMqBovxOomkpe .task1,#mermaid-svg-hgjbMqBovxOomkpe .task2,#mermaid-svg-hgjbMqBovxOomkpe .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutside0,#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutside2{fill:#000}#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutside1,#mermaid-svg-hgjbMqBovxOomkpe .taskTextOutside3{fill:#000}#mermaid-svg-hgjbMqBovxOomkpe .active0,#mermaid-svg-hgjbMqBovxOomkpe .active1,#mermaid-svg-hgjbMqBovxOomkpe .active2,#mermaid-svg-hgjbMqBovxOomkpe .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-hgjbMqBovxOomkpe .activeText0,#mermaid-svg-hgjbMqBovxOomkpe .activeText1,#mermaid-svg-hgjbMqBovxOomkpe .activeText2,#mermaid-svg-hgjbMqBovxOomkpe .activeText3{fill:#000 !important}#mermaid-svg-hgjbMqBovxOomkpe .done0,#mermaid-svg-hgjbMqBovxOomkpe .done1,#mermaid-svg-hgjbMqBovxOomkpe .done2,#mermaid-svg-hgjbMqBovxOomkpe .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-hgjbMqBovxOomkpe .doneText0,#mermaid-svg-hgjbMqBovxOomkpe .doneText1,#mermaid-svg-hgjbMqBovxOomkpe .doneText2,#mermaid-svg-hgjbMqBovxOomkpe .doneText3{fill:#000 !important}#mermaid-svg-hgjbMqBovxOomkpe .crit0,#mermaid-svg-hgjbMqBovxOomkpe .crit1,#mermaid-svg-hgjbMqBovxOomkpe .crit2,#mermaid-svg-hgjbMqBovxOomkpe .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-hgjbMqBovxOomkpe .activeCrit0,#mermaid-svg-hgjbMqBovxOomkpe .activeCrit1,#mermaid-svg-hgjbMqBovxOomkpe .activeCrit2,#mermaid-svg-hgjbMqBovxOomkpe .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-hgjbMqBovxOomkpe .doneCrit0,#mermaid-svg-hgjbMqBovxOomkpe .doneCrit1,#mermaid-svg-hgjbMqBovxOomkpe .doneCrit2,#mermaid-svg-hgjbMqBovxOomkpe .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-hgjbMqBovxOomkpe .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-hgjbMqBovxOomkpe .milestoneText{font-style:italic}#mermaid-svg-hgjbMqBovxOomkpe .doneCritText0,#mermaid-svg-hgjbMqBovxOomkpe .doneCritText1,#mermaid-svg-hgjbMqBovxOomkpe .doneCritText2,#mermaid-svg-hgjbMqBovxOomkpe .doneCritText3{fill:#000 !important}#mermaid-svg-hgjbMqBovxOomkpe .activeCritText0,#mermaid-svg-hgjbMqBovxOomkpe .activeCritText1,#mermaid-svg-hgjbMqBovxOomkpe .activeCritText2,#mermaid-svg-hgjbMqBovxOomkpe .activeCritText3{fill:#000 !important}#mermaid-svg-hgjbMqBovxOomkpe .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-hgjbMqBovxOomkpe g.classGroup text .title{font-weight:bolder}#mermaid-svg-hgjbMqBovxOomkpe g.clickable{cursor:pointer}#mermaid-svg-hgjbMqBovxOomkpe g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hgjbMqBovxOomkpe g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-hgjbMqBovxOomkpe .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-hgjbMqBovxOomkpe .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hgjbMqBovxOomkpe .dashed-line{stroke-dasharray:3}#mermaid-svg-hgjbMqBovxOomkpe #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe .commit-id,#mermaid-svg-hgjbMqBovxOomkpe .commit-msg,#mermaid-svg-hgjbMqBovxOomkpe .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-hgjbMqBovxOomkpe g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-hgjbMqBovxOomkpe g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hgjbMqBovxOomkpe g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hgjbMqBovxOomkpe .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hgjbMqBovxOomkpe .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-hgjbMqBovxOomkpe .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-hgjbMqBovxOomkpe .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hgjbMqBovxOomkpe .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-hgjbMqBovxOomkpe .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-hgjbMqBovxOomkpe .edgeLabel text{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hgjbMqBovxOomkpe .node circle.state-start{fill:black;stroke:black}#mermaid-svg-hgjbMqBovxOomkpe .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-hgjbMqBovxOomkpe #statediagram-barbEnd{fill:#9370db}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-state .divider{stroke:#9370db}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-hgjbMqBovxOomkpe .note-edge{stroke-dasharray:5}#mermaid-svg-hgjbMqBovxOomkpe .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-hgjbMqBovxOomkpe .error-icon{fill:#522}#mermaid-svg-hgjbMqBovxOomkpe .error-text{fill:#522;stroke:#522}#mermaid-svg-hgjbMqBovxOomkpe .edge-thickness-normal{stroke-width:2px}#mermaid-svg-hgjbMqBovxOomkpe .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-hgjbMqBovxOomkpe .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-hgjbMqBovxOomkpe .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-hgjbMqBovxOomkpe .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-hgjbMqBovxOomkpe .marker{fill:#333}#mermaid-svg-hgjbMqBovxOomkpe .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-hgjbMqBovxOomkpe {color: rgba(0, 0, 0, 0.75);font: ;}

ASCII
GBK
UTF-8
数据读取
字符集选择
读1个字节
01000001
读2个字节
0000000001000001
读3个字节
错误读取
解析
乱码
解析
A
输出

小结

1、字符集是一套符号的总称

2、不同国家地区的符号有区别,所以有自己的字符集

3、常见的字符集目前是三个

  • ASCII:美国信息交换标准码
  • GBK:汉字内码扩展规范(国标),兼容ASCII
  • UTF-8:8字节万国码,兼容GBK和ASCII

4、目前基本都统一使用UTF-8 开发和数据存储

5、字符集是指定字符的存储和读取的规范

  • 指定的字符集存储需要使用对应的字符集读取
  • 错误的字符集存储或者读取都会产生乱码

MySQL字符集

MySQL字符集:MySQL内部对于数据实际存储的字符集(服务器端)

  • MySQL内部对象可以在各个层级设置字符集
  • MySQL内部对象存在字符集继承:字段 -> 表 -> 数据库 -> DBMS
  • MySQL内部内嵌支持几乎所有主流字符集
  • 数据存储的最终字符集由字段控制
  • 客户端与服务器进行交互时,需要明确告知服务器客户端自己的字符集(数据格式)

查看MySQL支持的所有字符集show charset;

原理图:

1、数据库内部对象字符集原理

#mermaid-svg-YcZu0V7VpfhYjP2g .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .label text{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .node rect,#mermaid-svg-YcZu0V7VpfhYjP2g .node circle,#mermaid-svg-YcZu0V7VpfhYjP2g .node ellipse,#mermaid-svg-YcZu0V7VpfhYjP2g .node polygon,#mermaid-svg-YcZu0V7VpfhYjP2g .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-YcZu0V7VpfhYjP2g .node .label{text-align:center;fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .node.clickable{cursor:pointer}#mermaid-svg-YcZu0V7VpfhYjP2g .arrowheadPath{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-YcZu0V7VpfhYjP2g .flowchart-link{stroke:#333;fill:none}#mermaid-svg-YcZu0V7VpfhYjP2g .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-YcZu0V7VpfhYjP2g .edgeLabel rect{opacity:0.9}#mermaid-svg-YcZu0V7VpfhYjP2g .edgeLabel span{color:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-YcZu0V7VpfhYjP2g .cluster text{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-YcZu0V7VpfhYjP2g .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-YcZu0V7VpfhYjP2g text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-YcZu0V7VpfhYjP2g .actor-line{stroke:grey}#mermaid-svg-YcZu0V7VpfhYjP2g .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-YcZu0V7VpfhYjP2g #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .sequenceNumber{fill:#fff}#mermaid-svg-YcZu0V7VpfhYjP2g #sequencenumber{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g #crosshead path{fill:#333;stroke:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .messageText{fill:#333;stroke:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-YcZu0V7VpfhYjP2g .labelText,#mermaid-svg-YcZu0V7VpfhYjP2g .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-YcZu0V7VpfhYjP2g .loopText,#mermaid-svg-YcZu0V7VpfhYjP2g .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-YcZu0V7VpfhYjP2g .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-YcZu0V7VpfhYjP2g .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-YcZu0V7VpfhYjP2g .noteText,#mermaid-svg-YcZu0V7VpfhYjP2g .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-YcZu0V7VpfhYjP2g .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-YcZu0V7VpfhYjP2g .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-YcZu0V7VpfhYjP2g .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-YcZu0V7VpfhYjP2g .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .section{stroke:none;opacity:0.2}#mermaid-svg-YcZu0V7VpfhYjP2g .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-YcZu0V7VpfhYjP2g .section2{fill:#fff400}#mermaid-svg-YcZu0V7VpfhYjP2g .section1,#mermaid-svg-YcZu0V7VpfhYjP2g .section3{fill:#fff;opacity:0.2}#mermaid-svg-YcZu0V7VpfhYjP2g .sectionTitle0{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .sectionTitle1{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .sectionTitle2{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .sectionTitle3{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-YcZu0V7VpfhYjP2g .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .grid path{stroke-width:0}#mermaid-svg-YcZu0V7VpfhYjP2g .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-YcZu0V7VpfhYjP2g .task{stroke-width:2}#mermaid-svg-YcZu0V7VpfhYjP2g .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .taskText:not([font-size]){font-size:11px}#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-YcZu0V7VpfhYjP2g .task.clickable{cursor:pointer}#mermaid-svg-YcZu0V7VpfhYjP2g .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-YcZu0V7VpfhYjP2g .taskText0,#mermaid-svg-YcZu0V7VpfhYjP2g .taskText1,#mermaid-svg-YcZu0V7VpfhYjP2g .taskText2,#mermaid-svg-YcZu0V7VpfhYjP2g .taskText3{fill:#fff}#mermaid-svg-YcZu0V7VpfhYjP2g .task0,#mermaid-svg-YcZu0V7VpfhYjP2g .task1,#mermaid-svg-YcZu0V7VpfhYjP2g .task2,#mermaid-svg-YcZu0V7VpfhYjP2g .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutside0,#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutside2{fill:#000}#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutside1,#mermaid-svg-YcZu0V7VpfhYjP2g .taskTextOutside3{fill:#000}#mermaid-svg-YcZu0V7VpfhYjP2g .active0,#mermaid-svg-YcZu0V7VpfhYjP2g .active1,#mermaid-svg-YcZu0V7VpfhYjP2g .active2,#mermaid-svg-YcZu0V7VpfhYjP2g .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-YcZu0V7VpfhYjP2g .activeText0,#mermaid-svg-YcZu0V7VpfhYjP2g .activeText1,#mermaid-svg-YcZu0V7VpfhYjP2g .activeText2,#mermaid-svg-YcZu0V7VpfhYjP2g .activeText3{fill:#000 !important}#mermaid-svg-YcZu0V7VpfhYjP2g .done0,#mermaid-svg-YcZu0V7VpfhYjP2g .done1,#mermaid-svg-YcZu0V7VpfhYjP2g .done2,#mermaid-svg-YcZu0V7VpfhYjP2g .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-YcZu0V7VpfhYjP2g .doneText0,#mermaid-svg-YcZu0V7VpfhYjP2g .doneText1,#mermaid-svg-YcZu0V7VpfhYjP2g .doneText2,#mermaid-svg-YcZu0V7VpfhYjP2g .doneText3{fill:#000 !important}#mermaid-svg-YcZu0V7VpfhYjP2g .crit0,#mermaid-svg-YcZu0V7VpfhYjP2g .crit1,#mermaid-svg-YcZu0V7VpfhYjP2g .crit2,#mermaid-svg-YcZu0V7VpfhYjP2g .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-YcZu0V7VpfhYjP2g .activeCrit0,#mermaid-svg-YcZu0V7VpfhYjP2g .activeCrit1,#mermaid-svg-YcZu0V7VpfhYjP2g .activeCrit2,#mermaid-svg-YcZu0V7VpfhYjP2g .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-YcZu0V7VpfhYjP2g .doneCrit0,#mermaid-svg-YcZu0V7VpfhYjP2g .doneCrit1,#mermaid-svg-YcZu0V7VpfhYjP2g .doneCrit2,#mermaid-svg-YcZu0V7VpfhYjP2g .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-YcZu0V7VpfhYjP2g .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-YcZu0V7VpfhYjP2g .milestoneText{font-style:italic}#mermaid-svg-YcZu0V7VpfhYjP2g .doneCritText0,#mermaid-svg-YcZu0V7VpfhYjP2g .doneCritText1,#mermaid-svg-YcZu0V7VpfhYjP2g .doneCritText2,#mermaid-svg-YcZu0V7VpfhYjP2g .doneCritText3{fill:#000 !important}#mermaid-svg-YcZu0V7VpfhYjP2g .activeCritText0,#mermaid-svg-YcZu0V7VpfhYjP2g .activeCritText1,#mermaid-svg-YcZu0V7VpfhYjP2g .activeCritText2,#mermaid-svg-YcZu0V7VpfhYjP2g .activeCritText3{fill:#000 !important}#mermaid-svg-YcZu0V7VpfhYjP2g .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-YcZu0V7VpfhYjP2g g.classGroup text .title{font-weight:bolder}#mermaid-svg-YcZu0V7VpfhYjP2g g.clickable{cursor:pointer}#mermaid-svg-YcZu0V7VpfhYjP2g g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-YcZu0V7VpfhYjP2g g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-YcZu0V7VpfhYjP2g .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-YcZu0V7VpfhYjP2g .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-YcZu0V7VpfhYjP2g .dashed-line{stroke-dasharray:3}#mermaid-svg-YcZu0V7VpfhYjP2g #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g .commit-id,#mermaid-svg-YcZu0V7VpfhYjP2g .commit-msg,#mermaid-svg-YcZu0V7VpfhYjP2g .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-YcZu0V7VpfhYjP2g g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-YcZu0V7VpfhYjP2g g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-YcZu0V7VpfhYjP2g g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-YcZu0V7VpfhYjP2g .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-YcZu0V7VpfhYjP2g .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-YcZu0V7VpfhYjP2g .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-YcZu0V7VpfhYjP2g .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-YcZu0V7VpfhYjP2g .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-YcZu0V7VpfhYjP2g .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-YcZu0V7VpfhYjP2g .edgeLabel text{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YcZu0V7VpfhYjP2g .node circle.state-start{fill:black;stroke:black}#mermaid-svg-YcZu0V7VpfhYjP2g .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-YcZu0V7VpfhYjP2g #statediagram-barbEnd{fill:#9370db}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-state .divider{stroke:#9370db}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-YcZu0V7VpfhYjP2g .note-edge{stroke-dasharray:5}#mermaid-svg-YcZu0V7VpfhYjP2g .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-YcZu0V7VpfhYjP2g .error-icon{fill:#522}#mermaid-svg-YcZu0V7VpfhYjP2g .error-text{fill:#522;stroke:#522}#mermaid-svg-YcZu0V7VpfhYjP2g .edge-thickness-normal{stroke-width:2px}#mermaid-svg-YcZu0V7VpfhYjP2g .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-YcZu0V7VpfhYjP2g .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-YcZu0V7VpfhYjP2g .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-YcZu0V7VpfhYjP2g .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-YcZu0V7VpfhYjP2g .marker{fill:#333}#mermaid-svg-YcZu0V7VpfhYjP2g .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-YcZu0V7VpfhYjP2g {color: rgba(0, 0, 0, 0.75);font: ;}

继承DBMS字符集
继承数据库字符集
继承数据表字符集
服务器数据管理
DBMS系统
安装配置字符集
数据库
设定字符集
数据表
设定字符集
数据字段
设定字符集
  • 服务端存储的数据最终字符集由字段确定
  • 字段通常不会设置字符集,继承表的字符集(统一性,真正一般都与数据库一致)
  • 数据存储的字符集与客户端的字符集没有直接关系,是由 表(字段) 决定

2、客户端存储数据原理

#mermaid-svg-XehJAaMCx1COxKMM .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-XehJAaMCx1COxKMM .label text{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .node rect,#mermaid-svg-XehJAaMCx1COxKMM .node circle,#mermaid-svg-XehJAaMCx1COxKMM .node ellipse,#mermaid-svg-XehJAaMCx1COxKMM .node polygon,#mermaid-svg-XehJAaMCx1COxKMM .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-XehJAaMCx1COxKMM .node .label{text-align:center;fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .node.clickable{cursor:pointer}#mermaid-svg-XehJAaMCx1COxKMM .arrowheadPath{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-XehJAaMCx1COxKMM .flowchart-link{stroke:#333;fill:none}#mermaid-svg-XehJAaMCx1COxKMM .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-XehJAaMCx1COxKMM .edgeLabel rect{opacity:0.9}#mermaid-svg-XehJAaMCx1COxKMM .edgeLabel span{color:#333}#mermaid-svg-XehJAaMCx1COxKMM .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-XehJAaMCx1COxKMM .cluster text{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-XehJAaMCx1COxKMM .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-XehJAaMCx1COxKMM text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-XehJAaMCx1COxKMM .actor-line{stroke:grey}#mermaid-svg-XehJAaMCx1COxKMM .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-XehJAaMCx1COxKMM .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-XehJAaMCx1COxKMM #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-XehJAaMCx1COxKMM .sequenceNumber{fill:#fff}#mermaid-svg-XehJAaMCx1COxKMM #sequencenumber{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM #crosshead path{fill:#333;stroke:#333}#mermaid-svg-XehJAaMCx1COxKMM .messageText{fill:#333;stroke:#333}#mermaid-svg-XehJAaMCx1COxKMM .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-XehJAaMCx1COxKMM .labelText,#mermaid-svg-XehJAaMCx1COxKMM .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-XehJAaMCx1COxKMM .loopText,#mermaid-svg-XehJAaMCx1COxKMM .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-XehJAaMCx1COxKMM .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-XehJAaMCx1COxKMM .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-XehJAaMCx1COxKMM .noteText,#mermaid-svg-XehJAaMCx1COxKMM .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-XehJAaMCx1COxKMM .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-XehJAaMCx1COxKMM .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-XehJAaMCx1COxKMM .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-XehJAaMCx1COxKMM .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .section{stroke:none;opacity:0.2}#mermaid-svg-XehJAaMCx1COxKMM .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-XehJAaMCx1COxKMM .section2{fill:#fff400}#mermaid-svg-XehJAaMCx1COxKMM .section1,#mermaid-svg-XehJAaMCx1COxKMM .section3{fill:#fff;opacity:0.2}#mermaid-svg-XehJAaMCx1COxKMM .sectionTitle0{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .sectionTitle1{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .sectionTitle2{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .sectionTitle3{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-XehJAaMCx1COxKMM .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .grid path{stroke-width:0}#mermaid-svg-XehJAaMCx1COxKMM .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-XehJAaMCx1COxKMM .task{stroke-width:2}#mermaid-svg-XehJAaMCx1COxKMM .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .taskText:not([font-size]){font-size:11px}#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-XehJAaMCx1COxKMM .task.clickable{cursor:pointer}#mermaid-svg-XehJAaMCx1COxKMM .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-XehJAaMCx1COxKMM .taskText0,#mermaid-svg-XehJAaMCx1COxKMM .taskText1,#mermaid-svg-XehJAaMCx1COxKMM .taskText2,#mermaid-svg-XehJAaMCx1COxKMM .taskText3{fill:#fff}#mermaid-svg-XehJAaMCx1COxKMM .task0,#mermaid-svg-XehJAaMCx1COxKMM .task1,#mermaid-svg-XehJAaMCx1COxKMM .task2,#mermaid-svg-XehJAaMCx1COxKMM .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutside0,#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutside2{fill:#000}#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutside1,#mermaid-svg-XehJAaMCx1COxKMM .taskTextOutside3{fill:#000}#mermaid-svg-XehJAaMCx1COxKMM .active0,#mermaid-svg-XehJAaMCx1COxKMM .active1,#mermaid-svg-XehJAaMCx1COxKMM .active2,#mermaid-svg-XehJAaMCx1COxKMM .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-XehJAaMCx1COxKMM .activeText0,#mermaid-svg-XehJAaMCx1COxKMM .activeText1,#mermaid-svg-XehJAaMCx1COxKMM .activeText2,#mermaid-svg-XehJAaMCx1COxKMM .activeText3{fill:#000 !important}#mermaid-svg-XehJAaMCx1COxKMM .done0,#mermaid-svg-XehJAaMCx1COxKMM .done1,#mermaid-svg-XehJAaMCx1COxKMM .done2,#mermaid-svg-XehJAaMCx1COxKMM .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-XehJAaMCx1COxKMM .doneText0,#mermaid-svg-XehJAaMCx1COxKMM .doneText1,#mermaid-svg-XehJAaMCx1COxKMM .doneText2,#mermaid-svg-XehJAaMCx1COxKMM .doneText3{fill:#000 !important}#mermaid-svg-XehJAaMCx1COxKMM .crit0,#mermaid-svg-XehJAaMCx1COxKMM .crit1,#mermaid-svg-XehJAaMCx1COxKMM .crit2,#mermaid-svg-XehJAaMCx1COxKMM .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-XehJAaMCx1COxKMM .activeCrit0,#mermaid-svg-XehJAaMCx1COxKMM .activeCrit1,#mermaid-svg-XehJAaMCx1COxKMM .activeCrit2,#mermaid-svg-XehJAaMCx1COxKMM .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-XehJAaMCx1COxKMM .doneCrit0,#mermaid-svg-XehJAaMCx1COxKMM .doneCrit1,#mermaid-svg-XehJAaMCx1COxKMM .doneCrit2,#mermaid-svg-XehJAaMCx1COxKMM .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-XehJAaMCx1COxKMM .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-XehJAaMCx1COxKMM .milestoneText{font-style:italic}#mermaid-svg-XehJAaMCx1COxKMM .doneCritText0,#mermaid-svg-XehJAaMCx1COxKMM .doneCritText1,#mermaid-svg-XehJAaMCx1COxKMM .doneCritText2,#mermaid-svg-XehJAaMCx1COxKMM .doneCritText3{fill:#000 !important}#mermaid-svg-XehJAaMCx1COxKMM .activeCritText0,#mermaid-svg-XehJAaMCx1COxKMM .activeCritText1,#mermaid-svg-XehJAaMCx1COxKMM .activeCritText2,#mermaid-svg-XehJAaMCx1COxKMM .activeCritText3{fill:#000 !important}#mermaid-svg-XehJAaMCx1COxKMM .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-XehJAaMCx1COxKMM g.classGroup text .title{font-weight:bolder}#mermaid-svg-XehJAaMCx1COxKMM g.clickable{cursor:pointer}#mermaid-svg-XehJAaMCx1COxKMM g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-XehJAaMCx1COxKMM g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-XehJAaMCx1COxKMM .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-XehJAaMCx1COxKMM .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-XehJAaMCx1COxKMM .dashed-line{stroke-dasharray:3}#mermaid-svg-XehJAaMCx1COxKMM #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM .commit-id,#mermaid-svg-XehJAaMCx1COxKMM .commit-msg,#mermaid-svg-XehJAaMCx1COxKMM .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-XehJAaMCx1COxKMM g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-XehJAaMCx1COxKMM g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-XehJAaMCx1COxKMM g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-XehJAaMCx1COxKMM .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-XehJAaMCx1COxKMM .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-XehJAaMCx1COxKMM .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-XehJAaMCx1COxKMM .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-XehJAaMCx1COxKMM .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-XehJAaMCx1COxKMM .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-XehJAaMCx1COxKMM .edgeLabel text{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-XehJAaMCx1COxKMM .node circle.state-start{fill:black;stroke:black}#mermaid-svg-XehJAaMCx1COxKMM .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-XehJAaMCx1COxKMM #statediagram-barbEnd{fill:#9370db}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-state .divider{stroke:#9370db}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-XehJAaMCx1COxKMM .note-edge{stroke-dasharray:5}#mermaid-svg-XehJAaMCx1COxKMM .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-XehJAaMCx1COxKMM .error-icon{fill:#522}#mermaid-svg-XehJAaMCx1COxKMM .error-text{fill:#522;stroke:#522}#mermaid-svg-XehJAaMCx1COxKMM .edge-thickness-normal{stroke-width:2px}#mermaid-svg-XehJAaMCx1COxKMM .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-XehJAaMCx1COxKMM .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-XehJAaMCx1COxKMM .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-XehJAaMCx1COxKMM .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-XehJAaMCx1COxKMM .marker{fill:#333}#mermaid-svg-XehJAaMCx1COxKMM .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-XehJAaMCx1COxKMM {color: rgba(0, 0, 0, 0.75);font: ;}

提前告知服务端客户端数据字符集
如不告知-服务器使用默认设置
客户端录入数据
数据自带字符集
发送服务端
服务端接收数据
执行存储操作
转码为目标字符集
存储

3、客户端读取数据原理

#mermaid-svg-sskwkfjhsTj0oZtF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-sskwkfjhsTj0oZtF .label text{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .node rect,#mermaid-svg-sskwkfjhsTj0oZtF .node circle,#mermaid-svg-sskwkfjhsTj0oZtF .node ellipse,#mermaid-svg-sskwkfjhsTj0oZtF .node polygon,#mermaid-svg-sskwkfjhsTj0oZtF .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-sskwkfjhsTj0oZtF .node .label{text-align:center;fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .node.clickable{cursor:pointer}#mermaid-svg-sskwkfjhsTj0oZtF .arrowheadPath{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-sskwkfjhsTj0oZtF .flowchart-link{stroke:#333;fill:none}#mermaid-svg-sskwkfjhsTj0oZtF .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-sskwkfjhsTj0oZtF .edgeLabel rect{opacity:0.9}#mermaid-svg-sskwkfjhsTj0oZtF .edgeLabel span{color:#333}#mermaid-svg-sskwkfjhsTj0oZtF .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-sskwkfjhsTj0oZtF .cluster text{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-sskwkfjhsTj0oZtF .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-sskwkfjhsTj0oZtF text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-sskwkfjhsTj0oZtF .actor-line{stroke:grey}#mermaid-svg-sskwkfjhsTj0oZtF .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-sskwkfjhsTj0oZtF .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-sskwkfjhsTj0oZtF #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-sskwkfjhsTj0oZtF .sequenceNumber{fill:#fff}#mermaid-svg-sskwkfjhsTj0oZtF #sequencenumber{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF #crosshead path{fill:#333;stroke:#333}#mermaid-svg-sskwkfjhsTj0oZtF .messageText{fill:#333;stroke:#333}#mermaid-svg-sskwkfjhsTj0oZtF .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-sskwkfjhsTj0oZtF .labelText,#mermaid-svg-sskwkfjhsTj0oZtF .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-sskwkfjhsTj0oZtF .loopText,#mermaid-svg-sskwkfjhsTj0oZtF .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-sskwkfjhsTj0oZtF .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-sskwkfjhsTj0oZtF .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-sskwkfjhsTj0oZtF .noteText,#mermaid-svg-sskwkfjhsTj0oZtF .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-sskwkfjhsTj0oZtF .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-sskwkfjhsTj0oZtF .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-sskwkfjhsTj0oZtF .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-sskwkfjhsTj0oZtF .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .section{stroke:none;opacity:0.2}#mermaid-svg-sskwkfjhsTj0oZtF .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-sskwkfjhsTj0oZtF .section2{fill:#fff400}#mermaid-svg-sskwkfjhsTj0oZtF .section1,#mermaid-svg-sskwkfjhsTj0oZtF .section3{fill:#fff;opacity:0.2}#mermaid-svg-sskwkfjhsTj0oZtF .sectionTitle0{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .sectionTitle1{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .sectionTitle2{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .sectionTitle3{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-sskwkfjhsTj0oZtF .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .grid path{stroke-width:0}#mermaid-svg-sskwkfjhsTj0oZtF .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-sskwkfjhsTj0oZtF .task{stroke-width:2}#mermaid-svg-sskwkfjhsTj0oZtF .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .taskText:not([font-size]){font-size:11px}#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-sskwkfjhsTj0oZtF .task.clickable{cursor:pointer}#mermaid-svg-sskwkfjhsTj0oZtF .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-sskwkfjhsTj0oZtF .taskText0,#mermaid-svg-sskwkfjhsTj0oZtF .taskText1,#mermaid-svg-sskwkfjhsTj0oZtF .taskText2,#mermaid-svg-sskwkfjhsTj0oZtF .taskText3{fill:#fff}#mermaid-svg-sskwkfjhsTj0oZtF .task0,#mermaid-svg-sskwkfjhsTj0oZtF .task1,#mermaid-svg-sskwkfjhsTj0oZtF .task2,#mermaid-svg-sskwkfjhsTj0oZtF .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutside0,#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutside2{fill:#000}#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutside1,#mermaid-svg-sskwkfjhsTj0oZtF .taskTextOutside3{fill:#000}#mermaid-svg-sskwkfjhsTj0oZtF .active0,#mermaid-svg-sskwkfjhsTj0oZtF .active1,#mermaid-svg-sskwkfjhsTj0oZtF .active2,#mermaid-svg-sskwkfjhsTj0oZtF .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-sskwkfjhsTj0oZtF .activeText0,#mermaid-svg-sskwkfjhsTj0oZtF .activeText1,#mermaid-svg-sskwkfjhsTj0oZtF .activeText2,#mermaid-svg-sskwkfjhsTj0oZtF .activeText3{fill:#000 !important}#mermaid-svg-sskwkfjhsTj0oZtF .done0,#mermaid-svg-sskwkfjhsTj0oZtF .done1,#mermaid-svg-sskwkfjhsTj0oZtF .done2,#mermaid-svg-sskwkfjhsTj0oZtF .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-sskwkfjhsTj0oZtF .doneText0,#mermaid-svg-sskwkfjhsTj0oZtF .doneText1,#mermaid-svg-sskwkfjhsTj0oZtF .doneText2,#mermaid-svg-sskwkfjhsTj0oZtF .doneText3{fill:#000 !important}#mermaid-svg-sskwkfjhsTj0oZtF .crit0,#mermaid-svg-sskwkfjhsTj0oZtF .crit1,#mermaid-svg-sskwkfjhsTj0oZtF .crit2,#mermaid-svg-sskwkfjhsTj0oZtF .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-sskwkfjhsTj0oZtF .activeCrit0,#mermaid-svg-sskwkfjhsTj0oZtF .activeCrit1,#mermaid-svg-sskwkfjhsTj0oZtF .activeCrit2,#mermaid-svg-sskwkfjhsTj0oZtF .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-sskwkfjhsTj0oZtF .doneCrit0,#mermaid-svg-sskwkfjhsTj0oZtF .doneCrit1,#mermaid-svg-sskwkfjhsTj0oZtF .doneCrit2,#mermaid-svg-sskwkfjhsTj0oZtF .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-sskwkfjhsTj0oZtF .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-sskwkfjhsTj0oZtF .milestoneText{font-style:italic}#mermaid-svg-sskwkfjhsTj0oZtF .doneCritText0,#mermaid-svg-sskwkfjhsTj0oZtF .doneCritText1,#mermaid-svg-sskwkfjhsTj0oZtF .doneCritText2,#mermaid-svg-sskwkfjhsTj0oZtF .doneCritText3{fill:#000 !important}#mermaid-svg-sskwkfjhsTj0oZtF .activeCritText0,#mermaid-svg-sskwkfjhsTj0oZtF .activeCritText1,#mermaid-svg-sskwkfjhsTj0oZtF .activeCritText2,#mermaid-svg-sskwkfjhsTj0oZtF .activeCritText3{fill:#000 !important}#mermaid-svg-sskwkfjhsTj0oZtF .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-sskwkfjhsTj0oZtF g.classGroup text .title{font-weight:bolder}#mermaid-svg-sskwkfjhsTj0oZtF g.clickable{cursor:pointer}#mermaid-svg-sskwkfjhsTj0oZtF g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-sskwkfjhsTj0oZtF g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-sskwkfjhsTj0oZtF .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-sskwkfjhsTj0oZtF .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-sskwkfjhsTj0oZtF .dashed-line{stroke-dasharray:3}#mermaid-svg-sskwkfjhsTj0oZtF #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF .commit-id,#mermaid-svg-sskwkfjhsTj0oZtF .commit-msg,#mermaid-svg-sskwkfjhsTj0oZtF .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-sskwkfjhsTj0oZtF g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-sskwkfjhsTj0oZtF g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-sskwkfjhsTj0oZtF g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-sskwkfjhsTj0oZtF .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-sskwkfjhsTj0oZtF .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-sskwkfjhsTj0oZtF .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-sskwkfjhsTj0oZtF .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-sskwkfjhsTj0oZtF .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-sskwkfjhsTj0oZtF .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-sskwkfjhsTj0oZtF .edgeLabel text{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-sskwkfjhsTj0oZtF .node circle.state-start{fill:black;stroke:black}#mermaid-svg-sskwkfjhsTj0oZtF .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-sskwkfjhsTj0oZtF #statediagram-barbEnd{fill:#9370db}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-state .divider{stroke:#9370db}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-sskwkfjhsTj0oZtF .note-edge{stroke-dasharray:5}#mermaid-svg-sskwkfjhsTj0oZtF .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-sskwkfjhsTj0oZtF .error-icon{fill:#522}#mermaid-svg-sskwkfjhsTj0oZtF .error-text{fill:#522;stroke:#522}#mermaid-svg-sskwkfjhsTj0oZtF .edge-thickness-normal{stroke-width:2px}#mermaid-svg-sskwkfjhsTj0oZtF .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-sskwkfjhsTj0oZtF .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-sskwkfjhsTj0oZtF .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-sskwkfjhsTj0oZtF .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-sskwkfjhsTj0oZtF .marker{fill:#333}#mermaid-svg-sskwkfjhsTj0oZtF .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-sskwkfjhsTj0oZtF {color: rgba(0, 0, 0, 0.75);font: ;}

提前告知服务端客户端数据字符集
如不告知-服务器使用默认设置
客户端录入获取指令
发送服务端
服务器接收请求
执行获取指令
按照数据存储本身字符集获取
转成客户端字符集数据
返回客户端
客户端解析
只能按照自己的字符集解析

小结

1、MySQL服务端数据存储的字符集依赖各个对象设置

  • DBMS:设置最广,一旦设置所有对象都可以依赖,但是优先级最低
  • DB:针对数据库内的所有表,优先级高于DBMS,可以继承DBMS(一般在数据库层设置)
  • Table:针对当前表的设置,优先级高于DB,可以继承DB
  • Field:针对当前字段设置,优先级高于Table,可以继承Table,优先级最高

2、通常字符集的设置都是围绕数据表(现在都在数据库层),不会到具体字段

3、建议使用UTF8字符集存储数据(MySQL8以后建议使用UTF8MB4)

4、MySQL服务端支持各种字符集,并且能够进行各种字符集转换

5、客户端存储数据到服务端原理

  • 客户端告知服务端客户端的字符集
  • 服务端按照客户端指定的字符集接收数据(如果没有指定,使用默认,可能出现乱码)
  • 服务端按照实际存储表对应的字符集进行转换
  • 服务端存储数据

6、客户端读取数据从服务端原理

  • 客户端告知服务端客户端的字符集
  • 服务端按照客户指定的指令从数据库读取原始字符集数据
  • 服务端按照客户端的需求将数据进行字符转换
  • 服务端发送目标数据给客户端
  • 客户端按照自己的字符集进行解析

乱码问题解决

乱码:指数据不能按照正确的字符集进行存储或解析

  • 乱码原因1:数据在存储的时候已经变成乱码

    • 客户端字符集与服务端解析字符集不一致
    • 读取时想转成其他字符集均会错误
  • 乱码原因2:数据存储时正确,但是读取时解析成错误字符集
    • 客户端能解析的字符集与服务器提供的字符集不一致
  • 乱码解决方案:不论存储还是读取,都提前告知服务器当前客户端的字符集

告知字符集语法:set names 客户端字符集;

1、MySQL客户端(CMD打开),客户端字符集是固定的GBK

set names gbk;

流程图:

#mermaid-svg-zIyPUrFNNGCeO8rZ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .label text{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .node rect,#mermaid-svg-zIyPUrFNNGCeO8rZ .node circle,#mermaid-svg-zIyPUrFNNGCeO8rZ .node ellipse,#mermaid-svg-zIyPUrFNNGCeO8rZ .node polygon,#mermaid-svg-zIyPUrFNNGCeO8rZ .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-zIyPUrFNNGCeO8rZ .node .label{text-align:center;fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .node.clickable{cursor:pointer}#mermaid-svg-zIyPUrFNNGCeO8rZ .arrowheadPath{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-zIyPUrFNNGCeO8rZ .flowchart-link{stroke:#333;fill:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-zIyPUrFNNGCeO8rZ .edgeLabel rect{opacity:0.9}#mermaid-svg-zIyPUrFNNGCeO8rZ .edgeLabel span{color:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-zIyPUrFNNGCeO8rZ .cluster text{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-zIyPUrFNNGCeO8rZ .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-zIyPUrFNNGCeO8rZ text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .actor-line{stroke:grey}#mermaid-svg-zIyPUrFNNGCeO8rZ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .sequenceNumber{fill:#fff}#mermaid-svg-zIyPUrFNNGCeO8rZ #sequencenumber{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ #crosshead path{fill:#333;stroke:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .messageText{fill:#333;stroke:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-zIyPUrFNNGCeO8rZ .labelText,#mermaid-svg-zIyPUrFNNGCeO8rZ .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .loopText,#mermaid-svg-zIyPUrFNNGCeO8rZ .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-zIyPUrFNNGCeO8rZ .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-zIyPUrFNNGCeO8rZ .noteText,#mermaid-svg-zIyPUrFNNGCeO8rZ .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-zIyPUrFNNGCeO8rZ .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-zIyPUrFNNGCeO8rZ .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-zIyPUrFNNGCeO8rZ .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .section{stroke:none;opacity:0.2}#mermaid-svg-zIyPUrFNNGCeO8rZ .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-zIyPUrFNNGCeO8rZ .section2{fill:#fff400}#mermaid-svg-zIyPUrFNNGCeO8rZ .section1,#mermaid-svg-zIyPUrFNNGCeO8rZ .section3{fill:#fff;opacity:0.2}#mermaid-svg-zIyPUrFNNGCeO8rZ .sectionTitle0{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .sectionTitle1{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .sectionTitle2{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .sectionTitle3{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-zIyPUrFNNGCeO8rZ .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .grid path{stroke-width:0}#mermaid-svg-zIyPUrFNNGCeO8rZ .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-zIyPUrFNNGCeO8rZ .task{stroke-width:2}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText:not([font-size]){font-size:11px}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-zIyPUrFNNGCeO8rZ .task.clickable{cursor:pointer}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText0,#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText1,#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText2,#mermaid-svg-zIyPUrFNNGCeO8rZ .taskText3{fill:#fff}#mermaid-svg-zIyPUrFNNGCeO8rZ .task0,#mermaid-svg-zIyPUrFNNGCeO8rZ .task1,#mermaid-svg-zIyPUrFNNGCeO8rZ .task2,#mermaid-svg-zIyPUrFNNGCeO8rZ .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutside0,#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutside2{fill:#000}#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutside1,#mermaid-svg-zIyPUrFNNGCeO8rZ .taskTextOutside3{fill:#000}#mermaid-svg-zIyPUrFNNGCeO8rZ .active0,#mermaid-svg-zIyPUrFNNGCeO8rZ .active1,#mermaid-svg-zIyPUrFNNGCeO8rZ .active2,#mermaid-svg-zIyPUrFNNGCeO8rZ .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-zIyPUrFNNGCeO8rZ .activeText0,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeText1,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeText2,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeText3{fill:#000 !important}#mermaid-svg-zIyPUrFNNGCeO8rZ .done0,#mermaid-svg-zIyPUrFNNGCeO8rZ .done1,#mermaid-svg-zIyPUrFNNGCeO8rZ .done2,#mermaid-svg-zIyPUrFNNGCeO8rZ .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-zIyPUrFNNGCeO8rZ .doneText0,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneText1,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneText2,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneText3{fill:#000 !important}#mermaid-svg-zIyPUrFNNGCeO8rZ .crit0,#mermaid-svg-zIyPUrFNNGCeO8rZ .crit1,#mermaid-svg-zIyPUrFNNGCeO8rZ .crit2,#mermaid-svg-zIyPUrFNNGCeO8rZ .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCrit0,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCrit1,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCrit2,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCrit0,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCrit1,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCrit2,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-zIyPUrFNNGCeO8rZ .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-zIyPUrFNNGCeO8rZ .milestoneText{font-style:italic}#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCritText0,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCritText1,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCritText2,#mermaid-svg-zIyPUrFNNGCeO8rZ .doneCritText3{fill:#000 !important}#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCritText0,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCritText1,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCritText2,#mermaid-svg-zIyPUrFNNGCeO8rZ .activeCritText3{fill:#000 !important}#mermaid-svg-zIyPUrFNNGCeO8rZ .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-zIyPUrFNNGCeO8rZ g.classGroup text .title{font-weight:bolder}#mermaid-svg-zIyPUrFNNGCeO8rZ g.clickable{cursor:pointer}#mermaid-svg-zIyPUrFNNGCeO8rZ g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-zIyPUrFNNGCeO8rZ g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-zIyPUrFNNGCeO8rZ .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-zIyPUrFNNGCeO8rZ .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .dashed-line{stroke-dasharray:3}#mermaid-svg-zIyPUrFNNGCeO8rZ #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ .commit-id,#mermaid-svg-zIyPUrFNNGCeO8rZ .commit-msg,#mermaid-svg-zIyPUrFNNGCeO8rZ .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-zIyPUrFNNGCeO8rZ g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-zIyPUrFNNGCeO8rZ g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-zIyPUrFNNGCeO8rZ g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-zIyPUrFNNGCeO8rZ .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-zIyPUrFNNGCeO8rZ .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-zIyPUrFNNGCeO8rZ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-zIyPUrFNNGCeO8rZ .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-zIyPUrFNNGCeO8rZ .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-zIyPUrFNNGCeO8rZ .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-zIyPUrFNNGCeO8rZ .edgeLabel text{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-zIyPUrFNNGCeO8rZ .node circle.state-start{fill:black;stroke:black}#mermaid-svg-zIyPUrFNNGCeO8rZ .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-zIyPUrFNNGCeO8rZ #statediagram-barbEnd{fill:#9370db}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-state .divider{stroke:#9370db}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-zIyPUrFNNGCeO8rZ .note-edge{stroke-dasharray:5}#mermaid-svg-zIyPUrFNNGCeO8rZ .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-zIyPUrFNNGCeO8rZ .error-icon{fill:#522}#mermaid-svg-zIyPUrFNNGCeO8rZ .error-text{fill:#522;stroke:#522}#mermaid-svg-zIyPUrFNNGCeO8rZ .edge-thickness-normal{stroke-width:2px}#mermaid-svg-zIyPUrFNNGCeO8rZ .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-zIyPUrFNNGCeO8rZ .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-zIyPUrFNNGCeO8rZ .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-zIyPUrFNNGCeO8rZ .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-zIyPUrFNNGCeO8rZ .marker{fill:#333}#mermaid-svg-zIyPUrFNNGCeO8rZ .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-zIyPUrFNNGCeO8rZ {color: rgba(0, 0, 0, 0.75);font: ;}

客户端连接认证服务端
设定字符集
告知服务端当前客户端的字符集
其他操作
内部字符集转换不用管
结束

小结

1、乱码的本质原因就是客户端与服务端的字符集不一致导致

  • 客户端存储数据的时候服务端没有正确理解(服务端按照默认的存储,存储的就是乱码)
  • 客户端读取的时候没有正确告知服务端(服务端按照默认的提供)

2、解决乱码问题的方案:保证服务端正确理解客户端的字符集

  • set names 客户端字符集
  • 在任何数据操作之前(尤其是写数据,包括结构)

字符集设置原理

字符集设置原理:服务器端正确保障对客户端的数据识别

  • MySQL服务端提供了变量来记录客户端的字符集
  • MySQL对应的存储字符集的变量可以修改
  • set names 字符集就是对变量的修改,总共有三个
    • character_set_client: 客户端提供的数据的字符集
    • character_set_results: 客户端需要服务端提供的数据的字符集
    • character_set_connection: 连接使用的字符集,内部数据操作

1、查看系统内部存储这些记录字符集的信息

show variables like 'character_set%';  #%表示通配符,匹配后续所有不确定的数据

2、修改客户端字符集变量,保证数据正常存进服务端

set character_set_client = gbk;

3、修改客户端解析字符集变量,保证数据正常被客户端查看

set character_set_results = gbk;

4、使用set names 字符集批量修改,保证客户端被服务端正确理解,同时客户端也能正确解析

set names gbk;

小结

1、MySQL字符集控制是在服务端内部通过变量连接(针对每个独立的客户端)

2、set names字符集是一种快捷方式,本质有三个变量被修改

  • character_set_client:服务端接收客户端数据
  • character_set_connection:服务端内部连接使用
  • character_set_results:服务端提供数据给客户端

3、通常我们都是使用set names字符集来进行统一设置,而且是在建立连接之后操作数据之前就设置

总结

1、字符集是所有编程语言里都必须面对的首要问题,必须在一开始就选择好字符集(去到企业后先问清楚)

  • 业务针对的符号
  • 业务针对的范围

2、乱码是编程中最基础要解决的问题,一旦数据产生了乱码,通常是不可逆操作

3、解决乱码问题其实本质就是统一字符集问题

  • 客户端字符集:character_set_client
  • 连接层字符集:character_set_connection
  • 结果集字符集:character_set_results
  • 简单统一方式:set names 客户端字符集
  • 存储字符集:不用考虑,因为数据库有强大的字符集转换能力,只要在开始设置好,保证后续数据不会超出字符集即可

校对集

目标:了解校对集的概念以及校对集在校对时的作用

  • 校对集概念
  • 校对集设置
  • 校对应用

校对集概念

校对集:collate/collation,即数据比较时对应的规则

  • 校对集依赖字符集
  • 校对集的校对方式分为三种
    • 大小写不敏感:_ci,case insensitive(不区分大小写)
    • 大小写敏感:_cs,case sensitive(区分大小写)
    • 二进制比较:_bin,binary(区分大小写)
  • 校对集是在进行数据比较的时候触发

1、_ci,大小写不敏感

A 与 a 是相同的,不存在谁大谁小(系统会转换成一种)

2、_cs,大小写敏感

A 与 a 有大小关系,所以不同(存储数值)

3、_bin,二进制比较

A的二进制是01000001
a的二进制是01100001
二进制按位比较,所以不同

小结

1、校对集是数据比较的规则

  • 校对集依赖字符集存在
  • 每个字符集有多种校对规则

2、校对规则一共有三种

  • _ci:大小写不敏感,不区分大小写
  • _cs:大小写敏感,区分大小写
  • _bin:二进制比较(区分大小写)

校对集设置

校对集设置:在创建数据表的时候创建校对规则

  • 校对规则可以在MySQL四层对象设计

    • DBMS:系统配置
    • DB:数据库指定(库选项)
    • Table:表指定(表选项)
    • Field:字段指定(字段选项,一般不用)
  • 校对集从Field到DBMS继承;优先级Field最高
  • 每个校对集都有字符集对应的默认规则
  • 校对集设置语法:collate 校对集规则;

1、查看MySQL支持的所有校对集

show collation;

2、在数据库层设计校对集(常见)

create database db_4 charset utf8mb4 collate utf8mb4_bin;

3、在数据表层设计校对集

create table t_4(id int,name varchar(10)
)charset utf8mb4 collate utf8mb4_bin;

4、在字段层设计校对集(一般不常用)

create table t_5(id int,name varchar(10) collate utf8mb4_bin
)charset utf8mb4;

小结

1、MySQL中四层对象都可以设置校对集

  • DBMS:配置文件
  • DB:创建数据库时限定(设置)
  • Table:创建表示限定
  • Field:创建字段时限定

2、校对集从Field到DBMS实现继承

3、校对集依赖字符集,且每个字符集都有默认的校对集(一般情况不需要设置)

校对集应用

校对集应用:触发校对规则的使用

  • 校对集的应用通常是通过数据比较触发:order by 字段
  • 数据表中数据一旦产生,校对集的修改就无效

1、创建校对规则数据表并插入数据

# 创建默认校对规则表(不区分大小写)
create table t_4(name varchar(1)
)charset utf8mb4;
insert into t_4 values('B');
insert into t_4 values('A');
insert into t_4 values('b');
insert into t_4 values('a');# 创建二进制校对规则(区分大小写)
create table t_5(name varchar(1)
)charset utf8mb4 collate utf8mb4_bin;
insert into t_5 values('B');
insert into t_5 values('A');
insert into t_5 values('b');
insert into t_5 values('a');

2、触发校对:排序 order by

select * from t_4 order by name; # 升序
select * from t_5 order by name;

3、数据已经存在的表重新修改校对规则无效

alter table t_5 collate utf8mb4_general_ci;

小结

1、校对集的应用不是主动触发,而是通过数据比较自动触发

2、校对集对应的数据一旦产生,那么就不可以修改数据表的校对规则

3、校对集通常使用字符集默认校对集,如果需要进行额外的比较应用(通常是区分大小写),那么需要在建表的时候设定好目标校对规则

总结

1、校对集是数据比较的标准

2、校对集的校对规则都是依赖字符集存在的,不外乎三种规则

  • _ci:不区分大小写
  • _cs:区分大小写
  • _bin:二进制比较(区分大小写)

3、校对集的触发是自动的,只要数据在进行比较的时候就会自动触发设定的校对规则

  • 校对集的维护要在数据产生之前
  • 数据产生之后校对集的修改将无效

4、在进行数据表设计之前,要提前了解数据后续可能产生的比较形态,选择好合适的校对规则(一般都默认不区分大小写)

MySQL 字符集和校对集相关推荐

  1. 关于MySQL字符集和校对集问题

    字符集 一.字符集基础知识 数据在计算机的最终存储一定是二进制: 但是计算机内部的存储都是字节为基本单位: 最小单位是位(bit)只有两个状态0或者1. 但是表示的数据太少, 计算机都是以字节为操作单 ...

  2. Mysql数据库字符集和校对集

    简要说明  字符集和校对规则  字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则.  MySql在collation提供较强的支持,oracel在这方面没查到相应的资料.  不同字符 ...

  3. MySQL字符集和校对规则(Collation)

    MySQL字符集和校对规则(Collation) 阅读目录:MySQL的字符集和校对规则 MySQL的字符集 MySQL与字符集 正确使用字符集 MySQL客户端与字符集 字符集编码转换原理 字符集常 ...

  4. mysql字符集和校对规则

    字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下. 简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用 ...

  5. mysql 字符集和校对规则

    为什么80%的码农都做不了架构师?>>>    1,常规字符集及校对 假设我们有一个字母表使用了四个字母:'A'.'B'.'a'.'b'.我们为每个字母赋予一个数值:'A'=0,'B ...

  6. 11、MySQL字符集和校对规则详解

    在讲解字符集和校对规则之前,我们先来简单了解一下字符.字符集和字符编码. 字符(Character)是计算机中字母.数字.符号的统称,一个字符可以是一个中文汉字.一个英文字母.一个阿拉伯数字.一个标点 ...

  7. mysql 引擎 校对,MySQL 字符集和校对

    字符集是指一种从二进制编码到某类字符符号的映射,校对是一组用于某个字符集的排序规则.每一类编码字符都有其对应的字符集和校对规则 MySQL 如何使用字符集 每种字符集都可能有多种校对规则,并且都有一个 ...

  8. MySQL数据库——MySQL字符集和校对规则详解

    在讲解字符集和校对规则之前,我们先来简单了解一下字符.字符集和字符编码. 字符(Character)是计算机中字母.数字.符号的统称,一个字符可以是一个中文汉字.一个英文字母.一个阿拉伯数字.一个标点 ...

  9. 3、数据库中的字符集和校对集

    字符集 字符集指的就是存储数据到硬盘时用到的编码方式,mysql中操作字符集的基本sql如下: show character set;   -- 查看服务器支持哪些字符集 show variables ...

  10. mysql连接校对_mysql字符集和校对规则(Mysql校对集)

    字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下 简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于 ...

最新文章

  1. android aar 修改,Android aar包修改代码后重新打包
  2. 1.7 Python基础知识 - 模块初识
  3. 【转载】Windwos CE 跨进程内存注入
  4. jQuery如何在线导入js包
  5. Python-体育竞技模拟
  6. 【转】【Java/Android】Toast使用方法大全
  7. 服务器常见远程管理网口及登录方式
  8. vue组件之间的参数传递
  9. 计算机上怎么写英语音标,手的英语音标怎么写
  10. Digispark(ATTINY85) 微型开发板驱动安装与开发环境配置教程
  11. java设计模式---创建者模式
  12. 基于语法分析的公式分析器设计
  13. 程序员常见10大口头禅
  14. 免费ofd在线转PDF
  15. 爬虫、知识图谱和开源情报分析01
  16. xp计算机远程桌面设置密码,远程桌面连接设置,详细教您xp怎么设置远程桌面连接...
  17. trim()函数的用法
  18. 阿里大文娱——优酷场景化营销
  19. ID card No.
  20. 191201 解决MagicMouse2速度延迟缓慢

热门文章

  1. 海马玩模拟器离线安装包下载方法
  2. OBD柴油货车环保在线检测终端助力机动车尾气监管与时俱进
  3. 安卓Behavior用法
  4. Android CoordinatorLayout之自定义Behavior
  5. HTML5来了,7个混合式移动开发框架
  6. python上传百度云_python通过百度云api的方式上传或下载文件
  7. kiv8测量方法_measure_测量 | measure_Scikit image_参考手册_非常教程
  8. 三维点云语义分割基础知识
  9. 用Python求三角形面积
  10. 配置网络拓扑图测试软件,网络工程师必备系列课程专题(数据恢复+RAID配置+画拓扑图)...