如何解决MySQL中文乱码及插入中文信息错误的问题

2010-05-13

从前和最近,帮人做点东西的时候,都遇到过MySQL与中文不兼容的问题,从前都是凭借尝试与运气解决问题这次好好总结一下:

首先,MySQL默认安装后默认配置的字符集是latin1,不支持中文,因此必须修改字符集设置,修改方法至少有两种,一种是修改配置文件my.ini,另外一种是使用mysql server instance config wizard这个GUI工具,如下图:

image.png

上图一定把双椭圆的那个勾上,这个非常容易忘,本人曾经在这个小问题上弄了好久,后来发现选择了字符集,忘了勾选了!设置为gb2312或是gbk,也可以选择第二项的utf8,由于这个工具拿日语举例,令人气愤,不选那个了,呵呵。

之后使用status;命令查看字符集设置结果,如图:

image.png

以上解决方案一般都能解决问题,但是如果是在create database和create table之后再设置的话,就会遇到很多“诡异”的问题,这主要是因为这个设置只对后来创建的database和table有效果,对之前创建的数据库和表没有影响。因此在这种情况下可以有两种解决方案,如果之前创建的数据库和表内容不多的话,可以直接drop,重新创建和添加内容;如果内容很多,重做比较麻烦,可以使用alter database dbname character set "gb2312",alter table table_name character set "gb2312"等来改变原来数据库和表的字符集,但是这个一般都不彻底,如果要彻底,要更改每一列的编码,使得每个字段的编码都变成支持中文的才能最终解决问题。

所以,如果想最快解决问题的话,那就打碎了重来,直接drop,然后再创建。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程之旅

Python——爬虫入门Selenium的简单使用

之前的两篇我们讲解了Python内的urllib库的使用,不知道大家有没有在爬取一些动态网站的时候,发现自己用urllib爬取到的内容是不对的,无法抓取到自己想...

974
来自专栏Vamei实验室

Linux的“壳”

在上一篇文章中,我们已经初尝了Shell的好处。由于我们后面将大量借助Shell,所以在这里先简要介绍一下这件工具。 什么是Shell 我们已经说过,Shell...

1695
来自专栏Laoqi's Linux运维专列

“考虑不全面”导致的大问题!!!

今天做了个小实验,由于自己的考虑不全面,导致了大问题的产生! 因为此问题我在全网几乎都未找到满意的答案,所以现在打算分享出来! 问题原因: 1 2 ...

3658
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令七

今天我们来了解一下几个Linux小命令,因为比较短的,而且不常用,所以会有三个(我就是这么任性) 1. paste paste命令用于合并文件的列 paste指...

3097
来自专栏前端菜鸟变老鸟

sublime VI编辑器 十分钟熟练掌握各种命令

大家都知道,写代码的时候总有许多繁琐的操作,换行、删除一行、复制一行、去到行首、行尾等等。通常情况下是使用鼠标直接点击,这会大大的降低我们的开发效率,因此大家想...

661
来自专栏Jerry的SAP技术分享

webpack打包过程如何调试?

本文适用于已经会使用webpack的前端开发人员,但是想进一步了解webpack细节和进阶。

1113
来自专栏Echo is learning

visual studio code -- python

2415
来自专栏极客猴

Django 学习笔记之视图与URL配置

本文章是自己学习 Django 框架的第三篇。前面两篇文章主要记录 Django 理论相关知识。从本篇文章开始,将以理论和实战方式讲述 Django 框架的知识...

592
来自专栏个人随笔

eclipse 设置文本模板中 insert variable... 函数 详解

设置文本模板简要图:     设置文本模板详细过程:http://www.cnblogs.com/lsy131479/p/8478711.html ? 此处引出...

2746

Windows上的Linux容器预览

微软正在为Windows Server的下一个重大更新做准备(查看微软博客最近补充的这篇文章),并且有些新功能对于Docker用户来说是非常令人兴奋的。其中最重...

2019

扫码关注云+社区