如何解决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 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

7个角度进行nginx性能优化

在大多数情况下,一个常规安装的Nginx对网站来说已经能很好地工作了。然而如果想挤压出Nginx的性能,就需要了解哪些指令会影响Nginx性能,在本文中将解释N...

1232
来自专栏阿炬.NET

Wojilu学习笔记 (02)

2875
来自专栏互联网技术栈

Redis 队列

举例: 队列主要用在系统解耦、流量削峰、异步处理、数据顺序处理等场景。新手在使用时可能会犯一些常见的错误。下面讲一个新手容易犯的错误,在这个示例中把队列的入...

3665
来自专栏偏前端工程师的驿站

网页优化系列一:合并文件请求(asp.net版)

  最近因公司需要对网站的优化处理学习了一番,现在借本系列博文与大家分享一下自己的学习成果,有纰漏处请大家多多指正。   首先推荐一篇十分全面的网页优化文章  ...

2118
来自专栏我是业余自学C/C++的

汇编语言-第二章 寄存器(CPU工作原理)

1462
来自专栏玄魂工作室

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

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

3277
来自专栏FreeBuf

基于Session的身份窃取

一、Session是什么 密码与证书等认证手段,一般用于登录过程。用户登录之后,服务器通常会建立一个新的Session保存用户的状态和相关信息,用以跟踪用户的状...

2698
来自专栏数据和云

【12.2新特性】In-Memory列存储的FastStart管理

启用IM列存储时,In-Memory FastStart通过将IMCU直接存储在磁盘上来优化IM列存储中数据库对象的数量,使数据库通过将列数据存储在磁盘上更快地...

3569
来自专栏技术博文

curl参数

目录 1. 介绍 2. curl扩展的安装 3. curl_init 4. curl_setopt 5. cur...

3245
来自专栏calvin

net core 程序docker打包镜像并发布到官方store

学习一个技术的第一步,总是要先打印或显示一个hello world的。当然,学习docker也不例外。上一篇文章已经简单的介绍了环境的安装和配置。接下来就要打印...

2012

扫码关注云+社区

领取腾讯云代金券