最近接连遇到数据库编码问题,让你的系统本来像个美丽的姑娘却忽然发现她不识字一样难受,其实很多时候是编码的问题,而mysql(特别地)设计编码的地方很多,在这里做一个筛查:

1 mysql编码

用下面的命令可以查看mysql当前的各种默认编码:

showvariables like 'character\_set\_%'; 可以看到目前mysql的默认编码;

showvariables like 'collation_%';

my.cnf中设置对应的编码:

[client]

default-character-set=utf8

[mysqld]

collation_server = utf8_general_ci

character_set_server = utf8

[mysql]

default-character-set=utf8

[mysqldump]

default-character-set=utf8

2 数据库编码

CREATE DATABASE IF NOT EXISTS my_db DEFAULT CHARSET utf8COLLATE utf8_general_ci;

3. 数据表编码

/*!40101SET @saved_cs_client     =@@character_set_client */;

/*!40101SET character_set_client = utf8 */;

CREATETABLE `access` (

`id` int(8) unsigned NOT NULL AUTO_INCREMENT,

`role_id` smallint(6) unsigned NOT NULL,

`node_id` smallint(6) unsigned NOT NULL,

PRIMARY KEY (`id`),

KEY `nodeId` (`node_id`)

)ENGINE=MyISAM AUTO_INCREMENT=364 DEFAULTCHARSET=utf8;

/*!40101 SET character_set_client = @saved_cs_client */;

4. 转存的时候

有时候需要转存数据库,但是好好的数据库转到新库就乱码了,你可能需要:

#mysqldump --default-character-set utf8 -u root -pmypass mydb> mydb.sql

5. 查询的时候

有时候,虽然mysql、数据库、数据表以及导出的数据sql文件编码都没问题,但是query出来仍然出现乱码,可能是因为,在query的时候也需要设置编码,函数名称大同小异,在php+mysql中是:

mysql_query('set names utf8');

以上。

Mysql数据库乱码与编码问题筛查的更多相关文章

  1. 解决mysql数据库乱码问题

    MySQL的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小.速 度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选 ...

  2. MySql数据库乱码解决方法

    MySql数据库乱码解决方法 解决乱码问题一个原则:存取系统使用一致的编码规则. 多使用mysql的原生命令行,这样才能做更多的事情. ​ 第一步: 确认应用系统需要使用的编码 java的默认编码是跟 ...

  3. mysql 数据库乱码问题

    mysql 数据库乱码问题,按如下顺序检查,一步一步排除出错位置. 最好全部编码都使用UTF8编码. 网页页面编码方式使用UTF8: <meta http-equiv="Content ...

  4. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...

  5. mysql 数据库乱码解决

    mysql 数据库乱码解决, 进入前加入 set names 'utf8'  即可.

  6. php大力力 [013节]mySQL数据库乱码问题我还没解决

    <?php echo"测试<br>"; $sql_connection = mysql_connect("localhost","e ...

  7. 查看MySQL数据库的默认编码

    查看MySQL数据库的默认编码 1.使用status命令能够显示数据库的相关系信息,示例如下: mysql> status;————–mysql Ver 14.12 Distrib 5.0.77 ...

  8. MySQL数据库之表的增删改查

    目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是 ...

  9. vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)

    [编译中遇见的问题]       ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码       ②不明白mysql中的码制 [开始解决问题]      ①打开mysql控制台         ...

随机推荐

  1. VS2012/2013编辑器问题

    1. Visual Studio 2013 'Could not evaluate Expression' Debugger Abnormality 解决办法:http://weblog.west-w ...

  2. 讲解版的自动轮播(新手福利)样式和js就不分离了为了看的方便

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 3DShader之移位贴图(Displacement Mapping)

    我们知道法线贴图是只是改了物体的法线属性,用来计算光照,但是并没有改变物体本身的网格.但是移位贴图就不一样了,它会移动物体的顶点.我用移位贴图做了个海洋,好了,上了图再讲: 注意看海的边缘的顶点,已经 ...

  4. 老漏洞easy击:CVE-2012 0158占顶!

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXF1c2hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...

  5. 使用C++11实现无锁stack(lock-free stack)

    前几篇文章,我们讨论了如何使用mutex保护数据及使用使用condition variable在多线程中进行同步.然而,使用mutex将会导致一下问题: 等待互斥锁会消耗宝贵的时间 — 有时候是很多时 ...

  6. jquery,js常用特效名称

  7. TravelCMS旅游网站系统诞生记-1(后台框架篇)

  8. Android打开外部DB文件

    DB文件要放在Assets文件夹下,封装一个工具类,如下: package com.XX.DB; import java.io.File; import java.io.FileOutputStrea ...

  9. Base64加密解密

    /// <summary> /// 实现Base64加密解密 /// </summary> public sealed class Base64 { /// <summa ...

  10. android 5.0 受欢迎的API简介

    android 5.0 作为系统的一次重大升级,给用户和开发者带来了全新的体验.Material Design不但在视觉和操作上更胜一筹,扩展UI工具包同时也引入了大量新的API. 1. 3D视图和实 ...