设置mysql的字符编码解决中文乱码问题
配置说明
mysql5提供了以下几个设置字符集的系统变量:
character_set_client 客户端字符集
character_set_connection 客户端与服务器端连接采用的字符集
character_set_results SELECT查询返回数据的字符集
character_set_database 数据库采用的字符集
乱码问题一般是由于以上几个变量设置错误照成的,所以只要理解这几个变量,就可以告别乱码了。
使用上述变量,要理解这个核心思想:
character_set_client、character_set_connection、character_set_database编码要一致;
character_set_results则保证与SELECT返回的结果与当前程序的编码一致。
我们可以在程序中使用 set names来同时设置character_set_client, character_set_connection, character_set_results这三个系统变量。
例如set names 'utf8'
等同于 :
set character_set_client = ‘utf8’
set character_set_connection = ‘utf8’
set character_set_results = ‘utf8’
一般情况下,当数据库与数据库表的字符集为utf8,我们再在程序里设置set names 'utf8’命令,这样就能保证无乱码了,但是,这里还要注意character_set_results变量的值,character_set_results的字符值是用来显示返回给用户的编码的。
例如,你的数据库(character_set_database)用的是utf8的字符集,那么你就要保证character_set_client,character_set_connection也是utf8的字符集。而你的程序也许采用的并不是utf8,比如你的程序用的是gbk,那么你若把character_set_results也设置为utf8的话就会出现乱码问题。此时你应该把character_set_results设置为gbk。这样就能保证数据库返回的结果与你的程序的编码一致。
全局设置,重启失效
设置全局的数据库字符编码,即使基于整个MySQL服务的,当重启MySQL服务的时候,编码依然会变为原来的字符编码
set global character_set_database=gbk;
set global character_ser_server=gbk;
show variables like ‘%char%’;
永久设置
设置永久的字符编码,即需要在配置文件中修改数据库的字符编码
编辑 /etc/my.cnf,
在里面加入,已经有[XXX]的,在里面直接加入即可。
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后重启数据库即可,service mysql restart.
参考链接:
https://blog.csdn.net/zhaojunjie_dream/article/details/79979672
https://www.cnblogs.com/xbq8080/p/6572133.html
设置mysql的字符编码解决中文乱码问题相关推荐
- 前端网页、php与mysql数据库字符编码(解决中文等乱码问题
web开发中经常涉及前端网页--php--mysql之间的数据交互,当数据只有英文时通常不会有什么问题,但一旦涉及中文,三个地方的某一处字符编码不一致(如,网页使用的时gbk而mysql使用utf-8 ...
- 设置MySQL的字符编码
前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloable的.永久性改变的. ...
- mysql 编码格式_设置MySQL的字符编码
前言 这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8. 设置MySQL数据库的编码方式有三种,分别是基于session会话的.基于全局gloable的.永久性改变的. ...
- 利用过滤器处理字符,解决中文乱码问题
1.创建字符编码过滤器对象,名称为CharactorFilter类.该类实现了javax.servlet.Filter,并在都Filter()方法中对请求中的字符编码格式进行设置.代码如下: pack ...
- mac终端下修改MySQL的编码格式以解决中文乱码问题--找不到my-default.cnf及my.cnf
查看一下support-files文件夹(Finder下"前往文件夹";路径:/usr/local/mysql/support-files) 里面有没有my-default.cnf ...
- Cmder 设置默认打开目录、解决中文乱码
win + alt + p //打开设置 选择Startup-Task,修改{cmd::Cmder}项,把: *cmd /k "%ConEmuDir%\..\init.bat" - ...
- Java 按行读写文件(解决中文乱码)
import java.io.*;public class EmployeeTest{EmployeeTest(){}// 按行读取文件public void readFile01(){try {Fi ...
- 通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0......
原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对 ...
- MYSQL数据库字符编码设置
mysql字符集编码设置与查看命令 转自http://www.111cn.net/database/mysql/55781.htm 在mysql对字符编码的查看我们使用SHOW VARIABLES L ...
最新文章
- 正在写一个VC的聊天软件
- vue中比较完美请求的栗子(使用 axios 访问 API)
- 2015年3月29号日报
- windows 配置 Gitlab、Gitee(码云) 的git开发环境
- POJ-2754 Similarity of necklaces 2 区间取下界操作+DP
- 百度大脑全面解析如何通过NLP、CV和ASR等技术将企业服务智能化
- VMware 虚拟机
- LINNAEUS:生物医学文献的物种名称识别系统
- 简单工厂,工厂方法,抽象工厂思想-手机时代的变迁
- android手机截图,安卓手机怎么截屏,安卓手机怎么截屏幕图OPPO
- c fread 快读 详解_热量计算公式及例题详解
- 由浪潮8控存储登顶SPC-1所想,存储系统一个长期被忽略的指标
- matlab牛顿法求区间根程序,MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根...
- 淘宝长辈模式技术实践万字总结
- php 图片上加文字,php使用GD库实现图片上添加文字的方法(代码)
- Arduino开发板esp32
- 销量不敌理想、小鹏,蔚来掉队了?
- java性别分类汇总,excel表格数据男女分类汇总-在Excel中,对数据清单进行“按性别分类汇总出男女......
- 绩效管理周期分哪些阶段?
- 让iOS开发变得更有效率-分类、工具类