当前位置:网站首页>数据乱码问题—更改mysql字符编码
数据乱码问题—更改mysql字符编码
2022-08-02 14:04:00 【王永俊】
作为一名程序猿,几乎每天都在跟编码格式,乱码作斗争,如何你没有被乱码虐过,你肯定不好意思说你是一枚优秀的程序员。这不是今天我也被乱码血洗了一遍,下面说一下我需要的问题,和解决问题的思路。
忠告:
每次搭建环境的时候一定要统一了编码格式,主要包括:浏览器、IDE(比如eclipse)、数据库(比如Mysql)、jsp页面的编码、服务器(比如Tomcat)和其他(比如我们使用maven等)
今天将工作流模块跑起来之后,发现自己添加的数据,每次读出来都是乱码,而且只要经过自己修改的数据都变成了乱码。然后开始排查。因为其他都没有错而且设计编码格式比较简单,就不在这里详细说明了,本篇文章只是解决一个mysql设置编码格式的问题。
步骤
1.查看了浏览器和IDE的环境,发现都是UTF-8的。
2.然后检查了jsp页面,也都是UTF-8的。注:大家在新建jsp页面的时候,记得修改编程格式(包括引入页面的编码格式)。
3.检查了tomcat的编码,也是UTF-8的。
4.检查mysql编码,发现最后的问题就是出在mysql。
误区
因为使用了Navicat Premium,所以我第一反应就是在客户端修改了数据库的编码,可是发现还是乱码,然后修改了my.ini文件里面的字符集,发现还是没有解决问题。最后发现,修改完my.ini文件之后,必须重启mysql服务,记住不是重新连接数据库,是重启mysql服务,如果你没有使用命令的习惯,就去资源管理器中将mysql服务重启。
正确的解决方案:
一:查看默认字符集
默认情况下,mysql的字符集是latin1(ISO_8859_1),通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE ‘character%’;
+————————–+———————————+
| Variable_name | Value |
+————————–+———————————+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir |C:\Program Files\MySQL\MySQL Server 5.5\share\chars
ets\
|
+————————–+———————————+
mysql> SHOW VARIABLES LIKE ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
二:修改默认字符集
(1)简单的修改方法,就是直接修改mysql的my.ini文件中的字符集键值。
(2)使用mysql的命令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
三:重启mysql的服务
service mysql restar或者直接在资源管理器中找到mysql服务,直接重启。
附:我们也可以执行 :mysql>alter database mydb character set utf8;来修改已经建立的数据库字符集
总结
其实团体开发需要我们提前统一好各种工具使用的编码格式,这样可以减少很多麻烦,而且我们每个人安装工具的时候也要根据团队要求设置好编码格式。当然,有时候即使我们严格按照要求来设置,依旧会出现乱码,这时候就需要我们根据实际情况来解决,比如在代码中转码之类的,等遇到了再说。
边栏推荐
- yolov5,yolov4,yolov3 mess
- OpenCart迁移到其他服务器
- PHP open source customer service system _ online customer service source code PHP
- VS Code远程开发及免密配置
- [ROS](03)CMakeLists.txt详解
- c语言用scanf出错不安全的解决办法
- Verilog学习 系列
- 加减法运算及其溢出处理
- verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十章)
- [ROS] The software package of the industrial computer does not compile
猜你喜欢
随机推荐
The 2nd China Rust Developers Conference (RustChinaConf 2021~2022) Online Conference Officially Opens Registration
ABP,kendo后台接口,新增,查询
C语言日记 3 常量
Unit 10 Continuous Tuning
HBuilderX 核心插件安装提示:“插件XXX下载失败,请检查网络”问题的解决办法
ToF相机从Camera2 API中获取DEPTH16格式深度图
Unit 8 Middleware
CTF-XSS
What's wrong with running yolov5 (1) p, r, map are all 0
字符串的小知识
St. Regis Takeaway Notes - Lecture 10 Swagger
Unit 11 Serializers
华为防火墙IPS
C语言——一级指针初识
无人驾驶综述:国外国内发展历程
安装使用——百家CMS微商城说明文档(2)
[ROS](03)CMakeLists.txt详解
什么是闭包?闭包的作用?闭包的应用?有什么缺点?
执行栈和执行上下文
Flask-RESTful request response and SQLAlchemy foundation