mysql 存json中文乱码怎么设置_解决 MySQL 中文乱码
想要解决MySQL中文乱码首先必须了解下MySQL所支持的字符集,至于中文乱码出现的原因可以总结为:向数据库中插入的数据与数据库中的表所使用的字符集编码不同
一 . MySQL 中文字符集
常见支持中文的字符集有
GBK(双字节定长字符集)
得到了大多数系统的支持
GB2312(双字节定长字符集)
国标,收录了6763个常用汉字,比GBK少
GB 18030(不定长)
同样是国标,但数据库支持得较少
UTF-8(不定长 1至4 字节)
较为常用,被广泛支持
UTF-16 (不定长 2 或 4 字节)
采用16位编码的形式
曾经天真的以为,将所有字符编码都设为UTF-8便可,呵呵
后来发现UTF-8编码的 一个汉字 就要占用 3 个字节 ,而 GBK 编码的 一个汉字 只占用两个字节
因此当数据库是用来保存大量中文同时少量出现英文字符(即ASCII)码时,最好将该数据库的编码设为GBK(最为常见的情景就是保存小说了,大量的中文同时夹杂些英文字符)。这样就可以减少磁盘I/O,节省网络带宽。
当然,如果你的网站需要跨越多个语言区域的话,那UTF-8就是不二之选了。
二. MySQL中中文乱码的解决
记录一下自己中文乱码解决的过程
1. 打开数据库查看自己当前默认数据字符集的设置(在创建表的时候如果不制定字符集的话 MySQL将使用默认字符集来处理表或数据库)
输入
show variables like '%char%';
修改值定变量的字符集: 如将客户端的字符集修改为GBK
set character_set_client=gbk;
修改完之后,再创建新表如果没有特殊指定的话 ,就会使用你所指定的默认字符集
2.修改表的字符集
alter table table_name charset=utf8
3.修改配置文件
在Windows下Mysql的配置文件 my.ini中
将character_set_server设置为你所想要的值
如下将其值设置为UTF8
character_set_server=utf8
4.注意
Windows 下的控制台中默认是不支持UTF8编码,所以无论你怎么改,中文仍然是问号,或者乱 码(当然可以通过操作使其支持UTF8编码)。
三.MySQL 校对规则
MySQL 在对字符或字符串进行 比较 或 排序 的时候是根据字符集所对应校验规则集来决定大小写是否 敏感,或是根据字符的值来进行排序或比较。
每个字符集至少对应一种校对规则
使用以下语句来查看字符集所对应的校对规则
show collation like 'gbk8%';
排序方式的命名规则为:字符集名字_语言_后缀,其中各个典型后缀的含义如下:
1)_ci:不区分大小写的排序方式
2)_cs:区分大小写的排序方式
3)_bin:二进制排序方式,大小比较将根据字符编码,不涉及人类语言,因此_bin的排序方式不包含人类语言
因此,gbk_chinese_ci排序方式就表示:字符集为gbk,人类语言使用中文来比较大小,比较时区分大小写。
mysql 存json中文乱码怎么设置_解决 MySQL 中文乱码相关推荐
- mysql执行语句出来全是问号_解决MySQL中文输出变成问号的问题
解决MySQL中文输出变成问号的问题 于是我在程序中加入:mysql_query("SET NAMES GB2312");问题迎刃而解.主要是一个编码问题. 注意这句代码的插入位置 ...
- mysql连接被拒绝 密码也对_解决Mysql数据库拒绝远程连接和忘记密码的问题
解决数据库忘记密码的问题 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 编辑m ...
- mysql不能通过ip地址访问权限_解决mysql中只能通过localhost访问不能通过ip访问的问题...
解决mysql中只能通过localhost访问不能通过ip访问的问题 原因是没开权限 select * from user where user='root'; grant all privilege ...
- mysql可重复读和间隙锁_解决MySQL可重复读——详解间隙锁
间隙锁(Gap Lock)是Innodb在可重复读提交下为了解决幻读问题时引入的锁机制,(下面的所有案例没有特意强调都使用可重复读隔离级别)幻读的问题存在是因为新增或者更新操作,这时如果进行范围查询的 ...
- mysql存json将utf8编码 去掉,MySQL对JSON类型UTF-8编码导致中文乱码探讨
原文:https://www.cnblogs.com/CreateMyself/p/12587426.html 前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有 ...
- xp mysql字符集与乱码_解决MYSQL中文乱码问题三种方法
方法三 1>本文将消除乱码分为三步: >消除页面乱码, >消除从mysql教程中读出中文乱码, >消除插入mysql数据库教程中的中文乱码: 15>注意编码表示方式在网页 ...
- mysql不同版本乱码_解决MySQL中文乱码以及版本不一致问题_MySQL
一.导出数据 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的 ...
- mysql java中文乱码_解决Mysql+Java的中文乱码问题(学习心得)
最近几天一直都在学JSP,我用的数据库是Mysql.在连接数据库的过程中,刚开始我只是简单的执行了查询命令,发现从数据库取出的中文数据全部显示成了乱码,查了一些资料之后,我先用了下面的一个转换函数,值 ...
- mysql system_time_zone乱码_解决mysql设置时区时的错误Unknown or incorrect time zone: 'Asia/Shanghai'...
Mysql默认时区格式是'+8:00'的格式,这个时区可以在my.ini中[mysqld]节点下设置 default-time-zone = '+8:00' 默认这个设置是没有的 但是mysql不支持 ...
最新文章
- matlab 数据集制作,机器学习数据集制作与划分MATLAB实现
- 微服务前端开发框架React-Admin
- 帝国cms模板辅助编辑插件lsk_ecms.crx使用说明
- Javascript的this用法
- matlab 暂停命令(pause和input)
- LIST-PROCESSING命令的使用
- 再次“重新定义” 华为争做数据基础设施领航者
- JSP知识点大致介绍1
- js实现点击按钮复制文本功能
- 大学生学图像处理计算机要求,重点大学计算机教材:数字图像处理
- 使用友元,编译出错fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'msc1.cpp', line 1786) 的解决...
- 【听课笔记】复旦大学遗传学_06基因组
- oracle 8002,ORACLE 8.1.7 数据库ORA-600 4194故障恢复
- 面试题汇总-大牛的Java170
- 牛客网利用C语言解兔子序列
- 助力低碳出行 | 基于ACM32 MCU的电动滑板车方案
- 桌面虚拟化-精彩刚刚开始
- A review of 3D vessel lumen segmentation techniques: Models, features and extraction schemes
- Linux下:matplotlib 添加 Times New Roman字体
- 非常详细的hi3559A概念版用户手册
热门文章
- python求平均工资_math - 在Python中计算算术平均值(一种平均值)
- HTML两栏布局和三栏布局
- 空文件夹删不掉打不开,“该项目不存在请确认该项目位置“,“项目正在打开中无法删除“,“文件已损坏或者已经被移动删除“(多种方法图文详解,细节需要注意,以及可能遇到的问题)
- 切android 图标插件,Android解决Cutterman切割图标命名问题
- TCC-Transaction原理
- Linux下MySQL端口号查看与修改(端口扫盲)
- java实现Redis消息发布订阅
- SLS-日志服务分析查询
- WPF教程(十)使用App.xaml
- 在php页面出现乱码的原因,造成网页乱码的根本性原因是什么