Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)
mysql 中常常出现对中文支持不友好的情况常见的错误 “Illegal mix of collations for operation”
下面我们规整一下 mysql 数据库中一共涉及到哪些字符集
character-set-server/default-character-set:服务器字符集,默认情况下所采用的
character-set-database:数据库字符集
character-set-table:数据库表字符集
一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集.
character-set-client:客户端的字符集
character-set-results:结果字符集
在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集
下面分享一个解决mysql 中文字符乱码的解决方案:
修改mysql 配置
vim /etc/mysql/my.cnf
查找 “client” 一项:
上面黄色关键词就是我们要找的 client, 紧接着在下面添加一行: default-character-set=utf8
保存退出配置文件.
然后关闭mysql服务,重新启动.
/etc/init.d/mysql stop /etc/init.d/mysql start
然后我们进入 mysql ,查看字符集
mysql> show variables like 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | +--------------------------+--------+ 7 rows in set (0.00 sec)
上面结果可以看到字符集默认支持 utf8,我们在涉及到汉字的时候不会有乱码的情况.
以上所述是小编给大家介绍的Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
MySql中表单输入数据出现中文乱码的解决方法
MySQL会出现中文乱码的原因在于 1.server本身设定问题,一般来说是latin1 2.建库建表时没有制定编码格式. MySql中表单输入数据出现中文乱码的解决方法: 1.建库的时候 CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 2.建表的时候 CREATE TABLE content ( text VARCHAR(100) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
-
解决python2.7 查询mysql时出现中文乱码
问题: python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为'ascii' 4.没有解码 --- 解决方法: 1.设置mysql的编码 ubuntu执行下列语句: ** sudo vim /etc/mysql/my.cnf ** 然后在里面插入语句: [client] default
-
数据库 MySQL中文乱码解决办法总结
MySQL中文乱码解决办法 前言: MySQL是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user; insert into user value(&
-
Mysql 下中文乱码的问题解决方法总结
解决Mysql下中文乱码全是问号的问题 又是头疼的中文乱码问题,刚开始我一直用的本地数据库测,这没问题啊,一点问题都没,但我忘记了安卓和web用的是服务器上我搭的数据库,测了一下,果然乱码了. 试了网上不少方法,虽然不知道具体哪个方法给弄好了,就都说一下吧 第一种方法 刚开始先检查MySQL数据库,发现正如网上所说,部分编码是latin1, 是如下的样子: 果断改啊 set character_set_client=utf8; set character_set_connection=utf8;
-
MySQL从命令行导入SQL脚本时出现中文乱码的解决方法
本文实例讲述了MySQL从命令行导入SQL脚本时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 在图形界面管理工具 MySql Query Browser中打开脚本(脚本包括建库.建表.添加数据),并执行,不会有任何问题:但是使用mysql命令行工具执行建库脚本时,添加数据中如果包含中文,存入的数据就是乱码或是???... 解决方法1:在MySql安装目录下找到my.ini,将[mysql]下的default-character-set=latin1改为default-characte
-
PHP+MySQL存储数据常见中文乱码问题小结
本文实例总结了PHP+MySQL存储数据常见中文乱码问题.分享给大家供大家参考,具体如下: PHP+MySQL出现中文乱码的常见原因: 1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码. 2. 使用MYSQL中创建表.或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码. 3. PHP页面的字符集与数据库的编码不一致. 4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不
-
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅. 首先: 用show variables like "%colla%":show varables like "%char%":这两条命令查看数据库与服务端的字符集设置 如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8, 修改方法如下: 用记事本或
-
Mac Mysql数据库中文乱码问题解决
Mac 下MySQL数据库中文乱码解决方案: 当我们用框架进行数据库的存储操作时,经常会遇到中文乱码的问题. 如:在使用Java中得SSH框架时,我们需要在web.xml文件中配置编码的filter,具体代码是: <span style="font-family:FangSong_GB2312;font-size:14px;"><!-- 表单处理乱码,必须在OpenSessionInViewFilter的filter之前 --> <filter> &
-
JSP MySQL插入数据时出现中文乱码问题的解决方法
当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集. 从上图中可以看到 MySQL 有六处使用了字符集,分别为:client .connection.database.results
-
Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)
mysql 中常常出现对中文支持不友好的情况常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中一共涉及到哪些字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的 character-set-database:数据库字符集 character-set-table:数据库表字符集 一般情况下只需要设置character-set-ser
-
Docker安装mysql并解决中文乱码问题
目录 1.拉取mysql镜像 2.查看是否下载完成 3.MySQL挂载本地目录&解决中文乱码 4.创建容器并查看 1.拉取mysql镜像 网址:https://hub.docker.com/ 复制命令进行下载:docker pull mysql[:版本号] 不加版本号,默认是最新版 2.查看是否下载完成 docker images 3.MySQL挂载本地目录&解决中文乱码 因为在容器里面没有 vi 命令所以我们可以将 数据 和 配置 挂载在宿主机上,方便我们操作 创建分别创建文件夹 /tm
-
彻底解决Spring MVC中文乱码问题的方案
乱码是让人很头疼的一件事,本文介绍了彻底解决Spring MVC中文乱码问题的方案,具体如下: 1:表单提交controller获得中文参数后乱码解决方案 注意: jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <form
-
vs如何读取mysql中的数据并解决中文乱码问题
一.在vs中新建一个工程,然后新建一个源文件 二.右击上述图片中的mysql_test工程名,然后在最下方找到属性,并点击 三.点击VC++目录,在包含目录中添加mysql的文件路径,一般情况下的mysql的默认安装路径都是在C盘的Program Files下的,找到include路径,然后点击确定 四.在C/C++中的常规选项中,找到附加包含目录,同时也将mysql的include路径包含进去 五.在属性页中选择链接器的常规选项,在里面找到附加库目录,然后添加mysql的lib路径 六. 在
-
解决中文乱码的几种解决方法(推荐)
首先说明我的特殊情况: 1. 前台jsp中,我使用的是 form post 请求,设置了 enctype="multipart/form-data" ,页面编码格式都是utf-8 2. 后台中,我使用的是commons-fileUpload组件,ServletFileUpload 解析form表单和文件, 3. 设置 request.setCharacterEncoding("UTF-8"); 4. 设置了ServletFileUpload .setHeaderEn
-
在CMD中操作mysql数据库出现中文乱码解决方案
百度了一下..有说将cmd字符编码用chcp命令改为65001(utf8字符编码),可这样之后根本无法输入中文,查询出的中问结果依旧乱码 . 其实,只要保证cmd客户端和MySQL两者编码一致即可. 但现实是cmd默认的是gbk(cmd属性可以看到中文操作系统下面是gbk编码),而mySQL一般是utf8(我的也是),之前一直进入误区,想要更改cmd的字符编码,可是并不能行得通.网友中提到在mysql中关于客户端编码问题,只需在cmd里告诉mysql服务器我客户端这边编码和想要的结果集编码即可.
-
phpword插件导出word文件时中文乱码问题处理方案
最近一个项目开发要用到PHP技术导出Word文档,比较了几种方案,首先是使用Microsoft Office自带的ActiveX/COM组件,比如Word.Application,这种方式的优点是格式兼容度高,可以生成纯doc的Word2003格式文档,缺点一是比较占资源(调用会启动一个WINWORD.EXE进程),不适合Web多用户访问使用:二是PHP这种Web开发技术大多数是跑在Linux服务器上,当然也就无法使用Windows下的技术了,平台可移植和兼容性不好. 第二种生成Word的方案是
-
Idea连接MySQL数据库出现中文乱码的问题
问题:当使用JDBC连接MySQL数据库时,插入中文显示乱码 解决方法:在连接代码中插入以下代码 String url = "jdbc:mysql://localhost:3306/你的数据库名?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false"; 代码解读 useUnicode=true&characterEncoding=utf8 以上代码有两个作用: 1.存
-
在PHP中PDO解决中文乱码问题的一些补充
我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';")); 我试过用第一种方法,可结果是,name字段只显示一个'C'字符.之后的本该显示中文的地方却是空白. 结果是这样的:如图1示 我是只要解决的:直接将UTF8替换成了GBK,就可以了,即: PDO::__con
-
jsp用过滤器解决中文乱码问题的方法
定义一过滤器,实现Filtter接口 public class EncodingFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException,
随机推荐
- 手把手教你使用 virtualBox 让虚拟机连接网络的教程
- 浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别
- iOS实现屏幕亮度和闪光灯控制的实例代码
- Oracle PL/SQL入门慨述
- js H5 canvas投篮小游戏
- php 高效率写法 推荐
- JSP中动态include与静态include的区别介绍
- 解析Silverlight调用WCF/Rest异常的解决方法
- C语言高斯消元法的使用详解
- 深入解析C++的WNDCLASS结构体及其在Windows中的应用
- CSS Hack收集汇总
- jquery 鼠标滑动显示详情应用示例
- js监听表单value的修改同步问题,跨浏览器支持
- JS查看对象功能代码
- jQuery处理图片加载失败的常用方法
- 执行iframe中的javascript方法
- Bootstrap字体图标无法正常显示的解决方法
- IIS中保持HTTP连接的设置方法
- Java上传文件到服务器端的方法
- 入域的Windows访问未入域的Samba服务方法介绍