mysql 编码的问题

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: (1)  当使用mysql数据库时,要确定五个编码。(1)首先我们要设置数据库的编码;(2)然后确定程序中的请求和响应的编码和数据库一致;(3)连接数据库的编码和数据库一致,jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8(注意这句话一定不要写错了)(4)页面编码和数据库一致。

(1)

 当使用mysql数据库时,要确定五个编码。(1)首先我们要设置数据库的编码;(2)然后确定程序中的请求和响应的编码和数据库一致;(3)连接数据库的编码和数据库一致,jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=utf-8(注意这句话一定不要写错了)(4)页面编码和数据库一致。(5)程序文件编码和数据库一致。

(2)

当以上五中都相同但还是出现插入乱码或查询乱码。你就应该考虑到mysql服务器的编码。mysql默认编码为latin1不支持中文,可以通过show variables like 'character%';查看。需要将以下几个参数的编码设为一致。本人乱码是因为character_set_server 为latin1。而其他几个编码为utf-8.在linux下可以修改my.cnf文件,默认在/etc/my.cnf,在[mysqld]后添加character-set-server = utf8

MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8。

1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -uroot –p,之后两次输入root用户的密码),查看数据库的编码方式命令为:
 >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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;
其中,character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
character_set_system
linux可以通过 修改my.conf
windows修改my.ini

在[mysqld]后面加上:
character_set_server=utf8后面的几个语句和这个相似,本处略去。

注意 :如果插入字符包含Emoji表情,则必须在my.conf中添加如下两行(只加入以下两行,其他地方不需要改,当然要保证创建数据库和表编码为utf8mb4)
collation_server = utf8mb4_general_ci
character_set_server = utf8mb4
因为Emoji表情是四个字符,而utf-8是三个字符。所以要改成utf8mb4.


也可以通过命令方式
set character_set_server=utf8 注意是utf8 不是utf-8,后面的几个语句和这个相似,本处略去。
只要保证以上6个采用的编码方式一样,就不会出现乱码问题,如下图。

另一个查看数据库编码的命令:
>show variables like ‘collation%’;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
存储 关系型数据库 MySQL
MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』
MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』
51 0
|
2月前
|
存储 关系型数据库 MySQL
从零开始学Mysql - 字符集和编码(下)
从零开始学Mysql - 字符集和编码(下)
109 0
|
2月前
|
存储 SQL 关系型数据库
从零开始学Mysql - 字符集和编码(上)
从零开始学Mysql - 字符集和编码(上)
137 0
|
4月前
|
关系型数据库 MySQL Linux
【Linux 下 MySQL5.7 中文编码设置】
【Linux 下 MySQL5.7 中文编码设置】
|
5月前
|
关系型数据库 MySQL 数据库
MySQL中文编码问题
MySQL中文编码问题
|
8月前
|
关系型数据库 MySQL Linux
mysql 8中utf8和utf8mb4运行时的编码警告提醒[Warning]——my.ini配置问题
mysql 8中utf8和utf8mb4运行时的编码警告提醒[Warning]——my.ini配置问题
|
8月前
|
关系型数据库 MySQL 数据库
Mac MySql - 查看以及修改编码格式
Mac MySql - 查看以及修改编码格式
84 0
|
10月前
|
SQL 存储 数据可视化
【解决方案 二】---设置mysql5.7编码集为utf8mb4
【解决方案 二】---设置mysql5.7编码集为utf8mb4
339 0
|
11月前
|
Java 关系型数据库 MySQL
本地部署Confluence遇到的问题:MySQL数据库编码、隔离级别、验证码不显示
本地部署Confluence遇到的问题:MySQL数据库编码、隔离级别、验证码不显示
237 0
|
11月前
|
存储 SQL 数据可视化
从零开始学Mysql - 字符集和编码(下)
​ 这个系列的文章是根据《MySQL是怎样运行的:从根儿上理解MySQL》这本书的个人笔记总结专栏,这里十分推荐大家精读一下这本书,也是目前市面上个人所知的讲述Mysql原理的为数不多的好书之一,好了废话不多说我们下面进入正题。
83 0