MySQL中文乱码解决方法

解决MySQL中文乱码问题的方法 MySQL是一种常用的关系型数据库管理系统,但在使用过程中,有时会遇到中文乱码的问题。下面将介绍一些解决MySQL中文乱码问题的方法,并提供相应的源代码示例。解决MySQL中文乱码问题需要确保数据库、表、列的字符集设置正确,并在连接数据库时设置正确的连接字符集。通过设置连接字符集为utf8或utf8mb4,可以确保在与数据库进行交互时使用正确的字符集,从而避免中文乱码问题。在确认数据库字符集设置正确后,需要检查每个表和列的字符集设置。首先,确保你的MySQL数据库的字符集设置正确。替换为你的数据库名称。 阅读详情
分步骤进行

一、设置字符集为UTF8
首先,如果要在数据库中存储中文数据,个人建议将数据库的字符集设置为utf8
当你调用CREATE DATABASE onedbname;时,MySQL会根据默认字符集来设置新建的数据库的字符集,所以为方便起见应该在建立数据库之前设置数据库的默认字符集
找到MySQL安装的目录(如E:\Program Files\MySQL\MySQL Server 5.1\),找到my.ini文件,进行如下修改(方法在网上搜的,测试成功):
    1、[mysql]下的
    default-character-set=latin1
    改为
    default-character-set=utf8
    
    2、[mysqld]下的
    default-character-set=latin1
    改为
    default-character-set=utf8
这样,就将MySQL数据库的默认字符集设置为utf8了

重新启动MySQL数据库,这个命令行命令不了解,我使用的方法如下:
控制面板->管理工具->服务,找到MySQL服务(若未找到,可以通过mysqld --install命令安装服务),结束掉,然后重新开启。

你可以用Navicat的可视化界面创建数据库,创建表,插入数据,你可以看到文本数据使用的是utf8编码,查看16进制数据,可以看到每个汉字占用3个字节(不知是否中文都如此)。

你也可以用mysql命令行创建数据库,创建表。当你执行一条插入命令带有中文时应该会出错!!!往下看!

二、命令行中插入与获取UTF8格式数据
进行了第一步的设置后,你执行如下命令
INSERT INTO tableName(id, lable) VALUES(100, '巨蚁很牛叉');
出错!你需要先执行下面一个命令
SET NAMES GBK;

之后重新执行一遍上面的语句,成功!

根据我的思考,此处缘由应该是这样:
    MySQL不希望字符集问题给用户造成诸多不便,增加了一个将命令行的字符串转换为数据库所需字符集的字符串,比如我们一般在控制台输入的中文,一个字符都占用2个字节,通过SET NAMES GBK来说明我们的输入中含有中文需要进行相应转换。
    根据我刚刚对GBK编码的测试,我发现竟然和之前设置成UTF8的文本数据完全一样,在网上搜的GBK中文占用2字节,感觉甚是奇怪,究竟什么原因以后深入研究下应该可以明确。

上面的问题当你在执行SELECT语句时情况一样。
总之,当你要在命令行中处理有UTF8字符集的数据时,先调用一局SET NAMES GBK 就行了!

三、程序中处理插入与获取数据库中字符串数据
有一天夜里为在我的使用UNICODE的C++ WIN32控制台程序中显示中文,伤透了脑筋,之后第二天中午解决了,解决办法是我直接获取了UTF8字符数据,然后调用MultiByteToWideChar(CP_UTF8, ...)转换为UNICODE字符串即可用_cwprintf进行显示。
如果要Insert中文数据的话,就不能直接传递字符串了,需要先将UNICODE字符串转换为UTF8格式的连续字节,然后发送命令的话传递一段连续的字节,应该有些麻烦。

现在可以采用第二步的方法,执行SQL命令 SET NAMES GBK,万事大吉,具体就不细说了,进行测试无误,不过对于UNICODE程序还是要进行相应的转换。

相关推荐

瑞萨芯片串口配置,基于RL78芯片的串口使用配置

在这里隆重给大家介绍瑞萨编辑器CS+ for CA 的自动生成代码功能,只需要配置几个参数,就可以得到你想要的串口配置了,我现在已经忘记怎么手动配置寄存器了,哈哈。选择设置,此时将端口设置成功接下来设置时钟,根据自己的芯片所需设置相应的时钟,自己芯片是什么时钟查看数据手册和原理图可以找到。瑞萨芯片的串口配置其实和ST芯片的串口配置差不多,只是ST芯片的中文数据手册比较多,就更好配置了,找到所需要的串口配置IO口,此时将UART0 配置为引脚P61和P62,瑞萨芯片的串口配置竟然要配置串口。

qq_45315904的博客 4302

MySQL中文乱码解决方法(原创)

作者:Gods_巨蚁Q:517377100E-mail:ljsunlin@126.com这几天写C++程序需要调用到MySQL,现在总结一下如何处理中文乱码(或无法显示)问题本人之前下载了一款用于可视化操作MySQL数据的软件 Navicat 8 for MySQL,挺好用的,顺便也可用于测试一下中文乱码问题是否解决分步骤进行一、设置字符集为UTF8首先,如果要在数据库中存储中文数据,个人建议将数...

weixin_34137799的博客 112

可信数据空间:可信空间、区域功能节点、业务功能节点、连接器的关联关系

可信数据空间通过分层架构实现安全数据共享:可信空间作为顶层制定全局规则;区域功能节点协调辖区内功能节点协作;功能节点提供具体数据服务;连接器作为唯一通信通道确保安全交互。系统采用"规则自上而下约束,数据自下而上流动"机制,通过分层治理和标准化连接,在保证数据主权的同时实现跨域协作,具有策略分级执行、去中心化治理等特性,支持灵活扩展业务场景。

友莘居士的博客 1682

mysql中文乱码最全解决办法

原理:mysql默认字符编码为latin1,它是不支持中文的。查看编码可在root权限下命令行登录mysql,键入命令show variables like 'char%';可以看到character_set_database为latin1,我们有两种方式修改:第一种是修改配置文件my.ini,打开文件,在[client]和[mysqld]下分别加入default-character-set=ut...

kshon的博客 337

UWB定位进阶:如何利用DW1000的CIR数据做NLOS信号识别?

本文深入探讨了如何利用DW1000芯片的信道脉冲响应(CIR)数据进行非视距(NLOS)信号识别,以提升UWB定位精度。通过分析CIR数据的核心价值、预处理方法、特征提取技术以及机器学习模型构建,为研究人员和工程师提供了实用的解决方案,帮助克服室内定位中的NLOS挑战。

weixin_28729205的博客 474

Windows 11 24H2 外接显卡坞兼容性实测:3步解决USB设备失效

本文详细解析了Windows 11 24H2系统下外接显卡坞导致USB设备失效的问题,并提供了三步终极解决方案:驱动预解压与手动更新、电源管理设置调整、优化的设备连接顺序。通过雷电3接口的兼容性优化,帮助用户解决键盘鼠标卡死等常见问题,提升外接显卡坞的稳定性与性能。

weixin_31714129的博客 578

【_ 記 】MySQL 中文乱码问题完美解决方案

MySQL 中文乱码问题完美解决方案 解决乱码的核心思想是统一编码。 我们在使用 MySQL 建数据库和建表时应尽量使用统一的编码,强烈推荐的是 utf8 编码,因为该编码几乎可以兼容世界上所有的字符。 数据库在安装的时候可以设置默认编码,在安装时就一定要设置为 utf8 编码。设置之后再创建的数据库和表如果不指定编码,默认都会使用utf8 编码,省去了很多麻烦。数据库软件安装好之后可以通过如下命...

骐骥筋力成,志在万里外 1056

Python量化交易实战:如何用vnpy+Tushare获取股票历史数据(附完整代码)

本文详细介绍了如何利用vn.py框架与Tushare数据接口,构建一个健壮的Python量化交易数据获取引擎。通过封装Tushare API,实现股票历史数据的自动化获取与格式转换,并适配vn.py的BarData结构,为策略回测与实盘交易提供稳定、高效的数据基础。文中提供了完整的代码实现,涵盖环境配置、核心封装逻辑及高级功能扩展。

cola5的博客 1219

MySQL中文乱码问题解决方案

mysql> show variables like 'character%'; (查看字符集,发现为latin1: character_set_server | latin1 ) 2.[root@linux2018 ~]# cd /usr/share/mysql/ (进入mysql安装目录) 3. [root@linux2018 mysql]# ll (列出mysq...

浮生离梦的博客 212

YOLOv11【第三章:高阶应用与落地篇·第7节】多任务联合训练(Multi-Task Learning):检测+分割+关键点三头并进!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 726

YOLOv8独家原创改进:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4683

mysql-bin 乱码_mysql 中文乱码 解决方法集锦

mysql 中文乱码 解决方法集锦更新时间:2009年06月14日 18:22:16 作者:主要是针对 1.4x版本的一些乱码问题,其实新版本中错误也差不多,大家注意下编码问题。第一个方法:MySQL 4.1 中文乱码的问题最近要将 MySQL 4.0 升级到 MySQL 4.1 ,发现了中文乱码的问题,希望以下见解对大家有用。1. MySQL 4.1 在文字上有很大改进,它有了 Charac...

weixin_39578513的博客 822

机器人视觉联动精度优化:从±2mm到±0.02mm,产线级手眼标定全实战

2025年我接东莞长安Type-C接口分拣项目的时候,就是栽在了手眼标定上:实验室里标定完精度±0.5mm,一到产线直接掉到±2mm,机器人10次有3次抓不住,2000多件Type-C接口直接报废,还撞坏了2套汇川SCARA机器人的吸盘,本来45天的工期拖了3个月,不仅没赚到钱,还倒贴了几万块。手眼标定从来不是简单的跑个demo、算个矩阵就完事了,它是一个系统工程:从硬件选型、安装固定、相机标定、标定流程、算法优化、环境控制、重复验证,每一个环节都会影响最终的联动精度。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 381

mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

本文为大家讲解的是mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法,感兴趣的同学参考下。 问题说明: 因为要把本机的gbk编码的mysql数据库导入到虚拟主机去,服务商只提供了phpmyadmin供你导入导出。 一直不用这个phpmyadmin,在本机也是用navicat,总感觉phpmyadmin速度较慢。这回不行了,没有独立主机,只好用人家给的phpmyadmi

kiss_m_2020的专栏 2675

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

mysql sqlyog 乱码_SQLyog中文乱码的解决方法

类型:数据库类大小:19.0M语言:中文 评分:5.6标签:立即下载导入SQL的时候编码的问题,如果以前SQL是GBK就必须导入GBK编码如果UTF-8就必须一样!小问题~如果是写入,不管通过PHP还是C/s提交入库,编码必须统一的。初始情况:· 我使用的是SQLyog Enterprise v8.18。· Eclipse使用的文本编码是默认设置GBK;· 而服务器安装的MySQL: mysql...

weixin_31885729的博客 4907

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

mysql text 中文乱码_MySQL中文乱码问题的完整解决方法

本文描述了在基于JSP +MySQL构建网站时,发生网页中文显示为乱码情况的解决办法。最终希望使用的编码是:统一的UTF-8编码。试验网站的开发运行环境:OS: Ubuntu 12.04 及 Windows 7IDE: eclipse, Juno Service Release 2Web Server: Tomcat 7.0.27DataBase: MySQL 5.5.29本文的一些观点应该也能推...

weixin_32115669的博客 1490

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

mysql字符编码的设置以及mysql中文乱码的解决方法

最近在开发过程中,使用到mysql的数据库,而在将中文数据插入到数据库的时候出现了数据乱码的问题,在网上找了很多方法,问了很多人,试了很久才发现网上有的方法是不行的,因此在此记录下,以便他人查找。 查看字符编码 首先,将中文插入到数据库乱码是因为没有将数据库编码设置为支持中文的编码,mysql的默认编码是Latin1,不支持中文,应该设置为utf8查看自己的数据库编码是否已设置好,进入

yipiankongbai的专栏 6万+

jsp mysql中文乱码,jsp中文乱码 jsp mysql 乱码的解决方法

jsp中文乱码 jsp mysql 乱码的解决方法jsp中文乱码jspmysql乱码要servlet里面支持中文的方法:在dopost或者doget的第一句加上:request.setCharacterEncoding("GB2312");response.setCharacterEncoding("GB2312");jsp乱码问题在jsp里面就把里设置成charset=gb2312jsp页...

weixin_34026997的博客 531

mysql脚本执行中文乱码_MySQL从命令行导入SQL脚本时出现中文乱码的解决方法

本文实例讲述了MySQL从命令行导入SQL脚本时出现中文乱码的解决方法。分享给大家供大家参考,具体如下:在图形界面管理工具 MySql Query Browser中打开脚本(脚本包括建库、建表、添加数据),并执行,不会有任何问题;但是使用mysql命令行工具执行建库脚本时,添加数据中如果包含中文,存入的数据就是乱码或是???。。。解决方法1:在MySql安装目录下找到my.ini,将[mysql]...

weixin_31861065的博客 513

mysql_config 乱码_Mysql命令行中文乱码的解决方法

环境:Windows 8 64位,Mysql 5.0.96 for Win64 (x86)数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下:查看数据库的编码信息(服务端编码、客户端编码等)mysql>show variables like 'character_set_%';如果不统一,先设置为统一的“UTF-8”方法一:登录mys...

weixin_34261380的博客 245

MySql中文乱码问题的解决方法

       最近在使用mysql的时候遇到了中文乱码的问题,在网上查阅了很多资料,真正有用的太少了,或者是太杂了,因此我根据自己的经历进行总结一下。        首先我建表插入数据之后中文显示为问号,如下图所示:       ...

qq_42339210的博客 427

MySQL命令窗口出现中文乱码的解决方法

MySQL命令窗口出现中文乱码的解决方法

Littleree的博客 141

mysql 中文乱码的解决方法

mysql 中文乱码的解决方法

xuan2717的博客 85

mysql中文乱码解决方法

mysql中文乱码解决方法

runwuwushengxiyu的博客 91

MySQL中文乱码解决方法(MySQL+服务端)

MySQL乱码解决方法(MySQL+服务端)(1)MySQL部分检查修改(2)服务器部分 (1)MySQL部分 检查 CMD操作: mysql -u root -p SHOW VARIABLES LIKE ‘character%’; 像下面这样 图片: 如果database和server的字符集使用了latin1编码方式,latin1编码是不支持中文的,所以存储中文时会出现错误。 修改 1:设置...

qq_41559805的博客 860

MySQL中文插入错误或乱码解决方法

MySQL中文插入错误或乱码解决方法 (适合初学者遇到的问题) 问题 当我们想向数据库中的表格中插入中文数据时,却发现出来出现错误。 ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD’ for column ‘name’ at row 1 如下图 或查找表时发现中文乱码,如下图 除去一些比较复杂的原因不讲(能力有限),...

xuan_659的博客 1412
上一篇: mysql 安装图解
下一篇: mysql的基本命令操作
cheneystudy
博客等级 码龄16年 49粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值