【MySql数据库常见字符集介绍】

  在互联网环境中,使用MySql时常用的字符集有:

【如何选择合适的字符集】

  1.如果处理各种各样的文字,发布到不同语言的国家地区,应选Unicode字符集,对MySQL来说就是UTF-8(每个汉字3字节),如果应用需要处理英文,仅少量汉字使用UTF8更好(中英文混合)

  2.如果只需要支持中文,并且数据量很大,性能要求也较高,可选择GBK(定长:每个汉字占双字节,英文也占双字节),如果需要大量运算,如:比较排序,定长字符集,更快,性能更高。

  3.处理移动互联网业务,可能需要utf8mb4字符集。

【查看当前MySQL系统支持的字符集】

使用“ show character set; ”来查看:

查看当前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           |     latin1     |---------服务器字符集,配置文件指定或建库建表指定

| character_set_system          |     utf8        |

【使用"set names ****"解决乱码问题】

我们先在MySQL默认创建的test数据库中建立一个"user"表

然后我们来为user表添加一些数据:

会发现,插入英文都正常,但是一旦插入中文会出现“ Incorrect string value:"\xD5\xC5\xC8\xFD" for column 'name' at row 1 ”的错误。

我们先查看一下其数据库test的字符编码,默认是Latin1编码的

再查看一下表user的字符编码:同样是latin编码

对应于数据库和表均为latin1编码的情况,如何可以插入中文数据呢?如下:

使用"set names latin1;"设置编码,然后插入中文字段即可。

接下来查询一下,关闭cmd,重新打开一个cmd重新登录,进行查询操作。

发现查询出来又是乱码,我们再处理一下,

于是可以得出,要根据被查询的数据库和表的本身的字符编码来进行对应的" set names  **** "进行处理。

再来看看"set names ****"的具体作用:

先看下数据库test的默认情况下的字符集设置情况:

使用“set names utf8;” 再看下结果:

03_MySQL中文乱码处理_01_MySQl数据库字符集知识的更多相关文章

  1. 03_MySQL中文乱码处理_02_确保MySQL插入数据不乱码的解决方法

    [要统一MySQL数据库客户端 和 服务端的字符集] 如下,就是不统一的情况: 通常,MySQL数据库的下面几个字符集(客户端 和 服务端)统一成一个字符集(即" show variable ...

  2. php mysql 中文乱码解决,数据库显示正常,php调用不正常

    一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”,其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是 ...

  3. 解决JSP页面中文乱码插入到数据库的问题

    在JSP页面使用表单注册一个用户名的时候,查看到数据库里面的表中文显示乱码的情况有两种: 1.JSP页面传进来的参数中文就是乱码,则是前台的问题,这个时候写一个过滤器就好了,可以写如下的一个过滤器 p ...

  4. linux修改配置文件解决mysql中文乱码和指定数据库存储引擎

    如题,mysql数据库的中文显示乱码: 先看下原来数据库里的字符编码: mysql> show variables like '%character_set%'; +-------------- ...

  5. SpringMVC + mybatis + Druid insert 数据库中文乱码,查询无乱码

    之前一直在pom文件配置的数据库连接url,很多配置都写在pom文件中导致配置文件太长 新项目将配置写到不同的文件夹中得properties文件中了 db.url直接复制的pom文件中的 p.p1 { ...

  6. 解决Linux下Oracle中文乱码的一些心得体会 ,转自

    以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找 ...

  7. mysql 中文乱码

  8. PHP彻底解决mysql中文乱码

    彻底解决mysql中文乱码 mysql是我们项目中非经常常使用的数据型数据库. 可是由于我们须要在数据库保存中文字符,所以经常遇到数据库乱码情况.以下就来介绍一下怎样彻底解决数据库中文乱码情况. 数据 ...

  9. MySQL 5.5版本解决中文乱码问题时my.ini内[mysqld]项中不能再写default-character-set=utf8

    来看看如何解决乱码问题: 在mysql中默认字符集是latin1, 想要设置字符集为uft-8,可以在 my.cnf 文件中添加以下设置: [client] default-character-set ...

随机推荐

  1. redis的hash, list, set类型相关命令

    hash相关命令: 1. hset HSET key field value 将哈希表key中的域field的值设为value.如果key不存在,一个新的哈希表被创建并进行hset操作.如果域fiel ...

  2. php&mysql

    更新语句 $query='update num set num='.$counter.'where id=1';      ....................这个查询失败 $query='upd ...

  3. 抽象类Abstract的简单使用

    写了一个比较简单易懂的例子,如下图 AbstractBaseClass是抽象的基类,Class1,Class2是继承他的子类,并实现他的方法. //AbstractBaseClass.cs里的代码 p ...

  4. linux中删除目录

    在linux中删除一个目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可解决. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目 ...

  5. twitter的snowflake算法(C#版本)

    转自:http://blog.csdn.net/kinwyb/article/details/50238505 使用twitter的snowflake算法生成唯一ID. 在分布式系统中,需要生成全局U ...

  6. Struts2学习笔记1

     一.下载struts2.0.1 http://struts.apache.org/downloads.html,下载struts-2.0.1-all.zip,这个压缩包中包括了开发struts2所需 ...

  7. [Angular 2] Create Angular 2 Porject with Angular CLI

    Install: npm i -g angular-cli Create a project: ng new hello-angular2 Run the project: cd hello-angu ...

  8. VMWARE FUSION 6 KEY

    Serial number: VZ15K-DKD85-M85EP-W4P79-XAAU4 Serial number: VU50A-2UW9Q-M88UY-D7MQX-ZG8X8 Serial num ...

  9. Python 学习开发笔记之IO操作

    文件或者目录的路径操作 获取当前工作目录 import os import sys cwd = os.getcwd() 路径的拼接 os.path.join(path,"dir") ...

  10. sql快速生成大量数据

    先插入一条数据 insert into table(a,b,c,d) values(1,2,3,4) 然后重复执行以下sql语句 没执行一次 数据就会倍增 insert into table(a,b, ...