mysql字符集剖析 ——根治乱码问题

避坑指南:为什么你的MySQL总是报ERROR 1366?字符集设置的那些坑 本文深入解析MySQL字符集设置中的常见问题,特别是ERROR 1366报错的根源和解决方案。从字符集的多层体系到utf8mb4的全面支持,提供从临时修复到永久根治的全方位指南,帮助开发者避免中文存储兼容性问题,优化数据库性能。 阅读详情

字符集

字符编码概念

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

在计算机中所看到的任何内容都是字符构成的。

字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号。

字符集概念

字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。

常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设计的,因此,对中文字符进行编码,是中文信息交流的技术基础。

设置客户端所有字符集

如果直接通过cmd下的mysql.exe进行中文数据插入,那么可能出错

 

出错原因:

1、 用户是通过mysql.exe来操作mysqld.exe

2、 真正的SQL执行是Mysqld.exe来执行

3、 mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld也没有能力自己判断,就会使用自己默认的(字符集)

 

解决方案:mysql.exe客户端在进行数据操作之前将自己所使用的字符集告诉mysqld

Cmd下的mysql.exe默认都只有一个字符集:GBK

Mysql.exe如果告知Mysqld.exe对应的字符集类型为gbk?

快捷方式:set names 字符集

重新进行数据插入:中文(GBK)

深层原理:客户端,服务端,连接层(show variables like ‘character_set_%’)

Mysql.exe与Mysqld.exe之间的处理关系一共分为三层

客户端传入数据给服务端:client:character_set_client

服务端返回数据给客户端:server:character_set_results

客户端与服务端之间的连接:connection:character_set_connection

 

Set names 字符集的本质:就是一次性打通三层关系的字符集,变得一致。

在系统中有三个变量来记录着这三个关系对应的字符集:show variables like ‘character_set_%’;

查看一个新的客户端的对应的字符集关系

默认字符集的如下

 

修改服务器端变量的值

Set 变量名 = 值;

重新进行数据插入和查看的结果:插入OK,但是查看乱码

修改结果字符集为GBK

Connection只是为了更方便客户端与服务端进行字符集转换而设。

Set names gbk;

Set character_set_client = gbk; //为了让服务器识别客户端传来的数据

Set character_set_connection = gbk;//更好的帮助客户端与服务端之间进行字符集转换

Set character_set_results = gbk;//为了告诉客户端服务端所有的返回的数据字符集

彻底解决VsCode中文乱码:从编码原理到实战根治方案 字符编码是计算机科学中基础且关键的概念,它定义了字符与字节序列之间的映射规则,确保文本信息能在不同系统间正确存储和传输。其核心原理在于编码与解码的匹配——当写入文件时使用的编码与读取时使用的编码不一致,就会产生乱码,常见的如“锟斤拷”现象。在软件开发领域,统一使用UTF-8编码已成为最佳实践,它能最大程度地保证跨平台、跨语言的数据兼容性。特别是在集成开发环境(IDE)和现代Web开发中,正确处理编码是保障代码可读性、团队协作和构建稳定应用的重要环节。本文聚焦于VsCode这一主流编辑器,深入剖析其中文乱码产 阅读详情

相关推荐

乱码问题终极指南:从编码原理到实战修复,彻底告别“锟斤拷”

字符编码是计算机存储和处理文本信息的基础规则,它定义了字符与二进制数据之间的映射关系。其核心原理在于编码(将字符转换为字节)与解码(将字节还原为字符)过程的匹配。统一且正确的编码方案对于保障数据在存储、传输和显示过程中的一致性至关重要,其技术价值在于实现跨平台、跨语言的无障碍信息交换。在软件开发、数据处理和系统运维等应用场景中,编码不一致是导致乱码问题的根本原因。例如,当UTF-8编码的文本被错误地用GBK解码时,就可能产生经典的“锟斤拷”乱码;而Java应用在启动时若通过`JAVA_TOOL_OPTION

chaoyv 389

DataX踩坑实录:同步Oracle到MySQL时,字段类型映射和中文乱码怎么破?

本文详细解析了使用阿里巴巴DataX工具进行Oracle到MySQL数据同步时遇到的字段类型映射和中文乱码问题。通过实战案例,提供了数值类型、日期时间、大文本处理的解决方案,并深入探讨了字符集配置和性能优化技巧,帮助开发者高效完成异构数据库的离线同步任务。

cuanchuwei1207的博客 383

JMeter CSV参数化:彻底解决编码与换行符导致的乱码与跨平台问题

在软件测试与性能工程领域,数据驱动测试是提升自动化效率的关键技术,而CSV文件因其轻量、通用,常被用作参数化数据源。其核心原理在于通过外部文件为测试脚本提供动态输入数据,实现测试用例的复用与扩展。这一技术的价值在于能显著提升测试覆盖率和脚本维护性,广泛应用于接口自动化、性能压测等场景。然而,在实际工程实践中,CSV文件的编码格式与换行符差异,尤其是Windows默认的GBK编码与Linux/macOS通用的UTF-8编码之间的不兼容,以及CRLF与LF换行符的分歧,极易引发数据读取错乱、乱码(如“锟斤拷”)

weixin_30266885的博客 321

八、字符集

字符集字符编码概念字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。在计算机中所看到的任何内容都是字符构成的。  字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号。 字符集概念字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。 常见字符集名称:ASCII字符集、...

sout 437

从“運”字漏洞解析宽字节注入:字符集编码与SQL注入防御

字符集编码是计算机表示和存储文本的基础规则,它定义了字符与二进制序列的映射关系。在Web开发中,当后端处理、数据库连接和前端展示的字符集不一致时,就可能引发编码漏洞。以PHP的addslashes函数为例,它通过添加反斜杠对特殊字符进行转义,旨在防御SQL注入攻击。然而,在GBK等双字节字符集环境下,由于字符编码的解析特性,反斜杠可能被前一个字节“吞并”,导致转义失效,从而形成宽字节注入漏洞。这种漏洞在遗留系统或国际化支持不足的Web应用中依然存在风险。理解字符集编码原理与转义机制,有助于开发者从根本上认识

558

彻底理解字符编码与乱码:从ASCII到UTF-8的演进、诊断与最佳实践

字符编码是计算机科学中关于如何用数字表示文字的基础规则,它定义了字符与二进制数据之间的映射关系。其核心原理在于为每个字符分配唯一的数字标识(码点),并通过编码方案(如UTF-8)将这些码点转换为字节序列进行存储和传输。理解编码原理对于确保数据在不同系统间正确交换、避免信息丢失或损坏具有关键的技术价值,是软件工程、Web开发和数据处理领域的必备知识。在实际应用中,编码问题常导致网页显示异常、文件内容错乱、数据库存储错误等经典乱码场景。本文聚焦于UTF-8这一互联网事实标准,深入剖析其设计智慧,并提供从诊断工具

weixin_33290540的博客 352

查看MySQL数据库字符

MySQL数据库字符

the_shy369的博客 1万+

ASP.NET乱码问题根因与全场景解决方案

字符编码是Web应用数据流转的基础契约,其核心原理在于字节流在HTTP请求、运行时解码、数据库存储和HTTP响应四个环节中必须保持编码一致性。UTF-8作为现代Web事实标准,若在任一环节被ISO-8859-1、GBK或系统默认编码(如Encoding.Default)意外覆盖,即触发乱码。该问题的技术价值不仅在于显示正确性,更关乎数据完整性、API互操作性与安全合规性。典型应用场景涵盖ASP.NET WebForms表单提交、MVC模型绑定、Web API JSON响应、SQL Server中文存取、文件

xiang_fu的博客 374

c mysql 字符集 编码_mysql数据库编码与字符集的查看方法

一、查看mysql数据库的字符集 代码示例:show variables like 'character\_set\_%';输出:+--------------------------+--------+| variable_name | value |+--------------------------+--------+| character_set_client...

weixin_39608118的博客 261

SAS中文乱码问题深度解析与系统性解决方案

字符编码是数据处理与交换的基础技术概念,它定义了字符与二进制序列之间的映射规则。其核心原理在于为每个字符分配唯一的数字标识,以确保信息在不同系统间准确传递。在数据科学和统计分析领域,正确处理编码对于保证数据完整性与分析结果的可靠性具有至关重要的技术价值,尤其是在处理多语言文本数据时。SAS作为广泛使用的统计分析软件,在处理包含中文的数据时,常因编码不匹配引发乱码问题,这直接影响到从数据导入、处理到报告生成的全流程。本文聚焦于SAS环境下的中文乱码,深入剖析其根源在于SAS会话编码、数据源编码、程序文件编码及

weixin_32183107的博客 267

单细胞转录组分析(scRNA-seq)

单细胞转录组测序(Single-cell RNA sequencing,scRNA-seq)是一种高通量测序技术,可以在单细胞水平解析基因表达情况,揭示细胞异质性,探索稀有细胞类型,并研究细胞状态转换及动态调控机制。与传统的。

大甘的博客 6149

MySQL字符集编码实战:彻底解决ERROR 1366中文乱码问题

本文深入解析MySQL ERROR 1366中文乱码问题的根源,即字符集编码不匹配。通过Navicat图形界面和SQL命令行两种实战方法,详细指导如何从数据库、表、列及连接层统一编码为utf8mb4,并解释为何推荐使用utf8mb4而非utf8,从根本上解决中文数据插入报错与乱码问题。

weixin_29200485的博客 124

【超简单】一文入门在Ubuntu系统使用GitHub

Github是基于git的代码仓库,对于开发项目的科研者或者工程师,代码仓库都是不可多得的版本控制与多端编程工具,今天这篇文章带你轻松Github入门,简单的项目本文的操作足矣。

a13337649640的博客 5236

Kafka消息乱码问题深度解析:从编码原理到生产环境根治方案

字符编码是计算机系统中文本数据存储与传输的基础概念,它定义了字符与二进制字节序列之间的映射规则。在分布式消息系统中,消息的序列化与反序列化过程本质上是基于字符编码的字节转换。当生产者与消费者使用不同的字符集进行编解码时,就会出现乱码问题,这直接影响了数据的完整性与业务可靠性。Kafka作为核心的消息中间件,其消息传递基于字节数组,不执行编码转换,因此编码一致性成为保障数据正确性的关键技术要点。在实际的工程实践中,尤其是在涉及多语言客户端、复杂数据管道(如Filebeat -> Kafka -> Logsta

weixin_33984032的博客 390

Python大数据舆情分析系统开发实战

舆情监测系统是大数据分析的重要应用场景,通过自然语言处理(NLP)技术解析社交媒体文本情感倾向。基于Python技术栈的解决方案整合了Scrapy爬虫框架进行数据采集,PySpark处理海量文本数据,结合SnowNLP和Jieba实现中文语义分析。系统采用微服务架构设计,包含数据采集层、处理层、存储层和应用层,通过情感分析优化和实时热点检测算法提升监测准确率。典型应用包括企业品牌监测、公共事件预警等场景,开发过程中需特别注意数据合规性和分布式集群的性能调优。

weixin_34408624的博客 388

ResNet理论基础与具体实现(详细教程)

论文地址:Deep Residual Learning for Image Recognition ​ Identity Mappings in Deep Residual Networks pytroch源码地址:resnet 0x00 前言 ResNet是2015年就提出的网络结构,中文名字叫作深度残差网络,主要作用是图像分类。现在在图像分割、目标检测等领域都有很...

coordinate的博客 8332

JSP 页面乱码与 4 种会话跟踪技术:从问题根因到实战解决方案

本文深入探讨了JSP页面乱码问题的根因分析与4种会话跟踪技术的实战解决方案。针对JSP开发中的字符编码问题,提出了三层诊断模型和5种解决方案,并详细对比了URL重写、隐藏表单域、Cookie机制和HttpSession对象等会话跟踪技术的优缺点。文章还提供了Tomcat 9.x的配置指南和分布式会话方案选型建议,帮助开发者有效解决Java Web开发中的常见问题。

weixin_31292729的博客 216

转载:YOLOv8改进全新Inner-IoU损失函数:扩展到其他SIoU、CIoU等主流损失函数,带辅助边界框的损失

目标检测是计算机视觉中的基本任务,包括目标分类和定位。边界框回归损失函数是检测器定位分支的重要组成部分,检测器的定位精度在很大程度上取决于边界框回归,在当前的检测器中发挥着不可替代的作用。在BBR中,IoU损失可以准确描述预测边界框与GT框之间匹配的程度,确保模型在训练过程中可以学习到目标的位置信息。作为现有主流边界框回归损失函数的基本部分,IoU定义如下:B和分别代表预测框和GT框。定义IoU之后,相应的损失可以定义如下:至今,基于IoU的损失函数逐渐成为主流并占据主导地位。

wuling129的专栏 4943

UnityWebRequest读取本地TXT中文乱码:编码原理与根治方案

字符编码是计算机处理文本信息的基础,它定义了字符与二进制数据之间的映射规则。当文件的存储编码与程序读取时使用的解码规则不一致时,就会产生乱码问题,这是跨平台开发中的常见挑战。在Unity开发中,使用UnityWebRequest读取本地文本文件时,由于平台默认编码差异和API的隐式解码行为,极易引发中文乱码。通过理解编码与解码的原理,开发者可以掌握主动指定编码进行解码的技术方案,从而确保文本数据在不同环境下正确解析。本文聚焦于UnityWebRequest读取本地TXT文件这一具体场景,深入剖析乱码成因,并

aoe41606的博客 399

Qwen2-VL出现RuntimeError: CUDA error: too many resources requested for launch CUDA kernel errors的解决方案

本文主要介绍了Qwen2-VL出现RuntimeError: CUDA error: too many resources requested for launch CUDA kernel errors的解决方案,希望能对使用Qwen2-VL的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 13万+

LeRobot 入门教程(十)LIBERO 机器人终身学习评估

LIBERO是一项专注于机器人终身学习(LLDM)的基准测试平台,包含130项任务,分为5大套件(空间推理、物体操作、目标约束等)。LeRobot框架已集成LIBERO,支持单/多套件评估,并兼容SmolVLA模型。训练需使用预处理数据集(HuggingFaceVLA/libero),观测数据需符合规范(8维状态+双摄像头图像)。该平台采用MuJoCo模拟,支持无头服务器运行,旨在推动机器人持续学习算法的发展与标准化评估。

2506_90492529的博客 1664

MySQL迁金仓翻车实录:自增主键报错?别慌,这是Linux下最全的排查与修复指南

本文详细解析了MySQL迁移至KingbaseES(人大金仓)时常见的自增主键报错问题,提供了Linux环境下的全面排查与修复方案。从故障现场还原到深度解析数据库引擎差异,再到系统化的解决方案和自动化处理脚本,帮助开发者高效解决数据迁移中的典型问题。

419

python爬取银行年报2

python爬取公司年报(巨潮资讯网)

bboysteed的博客 4730

避坑指南:GeoTools渲染SLD样式时中文乱码的3种解决方案

本文深入剖析了在Java GIS开发中使用GeoTools渲染SLD样式时出现中文乱码的根本原因,并提供了三种系统性的解决方案。文章从数据源编码配置、SLD文件编码声明与解析、以及TextSymbolizer字体配置等关键环节入手,结合实战代码示例,帮助开发者彻底解决这一常见难题,确保地图中文标注的正确显示。

bash7scripter的博客 582

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: SQL基本操作——数据操作
下一篇: mysql列类型一 —— 整型(Tinyint,Smallint,Mediumint,Int,Bigint)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值