Mysql查看编码方式专题
Mysql 查看编码方式专题查看编码方式专题一、查看数据库的字符集show variables like 'character_set_%'输出:+-+-+| Variable_name | Value |+-+-+| character_set_client | latin1 | character_set_connection | latin1 | character_set_database | latin1 | character_set_filesystem | binary | character_set_results | latin1 | character_set_server | latin1 | character_set_system | utf8 |+-+-+结合以下的编码表我们发现当前的数据库系统的编码:latin1_bin 西欧(多语言), 二进制binary 二进制以上是我在 linux 环境中的查看的结果编码集了。我现在 WIN 平台上面查看编码集结果如:+-+-+| 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 |+-+-+为什么会出现不一致的情况呢?在我本机上面是显示的 UTF-8.而在 LINUX 上面居然是二、通过命令修改其编码创建数据库指定数据库的字符集mysql>create database mydb character set utf-8;#直接指定其编码直接通过命令进行修改set character_set_client=utf8;set character_set_connection=utf8;set character_set_database=utf8;set character_set_results=utf8;set character_set_server=utf8;修改完了之后再查询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 |+-+-+结果全部都调整修改成 UTF-8 了!来运棋牌 http:/www.411196.com修改完了之后我看 select * from address_address; 出现乱码了!Django 也乱码三、解决数据导入导出的乱码问题#create database nginxdjango;# use nginxdjango;# show variables like 'character_set_%'#打印输出居然是如下+-+-+| Variable_name | Value |+-+-+| character_set_client | latin1 | character_set_connection | latin1 | character_set_database | latin1 | character_set_filesystem | binary | character_set_results | latin1 | character_set_server | latin1 | character_set_system | utf8 |+-+-+依旧是 latin 编码的。OK。我将其编码设置一下set character_set_client=utf8;set character_set_connection=utf8;set character_set_database=utf8;set character_set_results=utf8;set character_set_server=utf8;再查询一下其编码格式为:+-+-+| 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 |+-+-+现在将数据导进来source /python/django/sql/nginxdjango.sql;其中的 nginxdjango.sql 其编码也是 utf-8 格式的!导进来 数据库查看居然还是乱码不过程序跑起来是正常了!MySQL 字符集编码的类型种类gb2312_chinese_ci 和 gbk_chinese_ci 以及 gb2312_bin,gbk_bin 的区别gb2312_chinese_CI : 只支持简体中文gb2312_BIN :而 gb2312_bin 可以说是 gb2312_chinese_ci 的一个子集,而且 gb2312_BIN 是二进制存储.区分大小写数据库编码格式就意义不一样了gbk_chinese_CI 支持简体中文和繁体gbk_bin 解释同 gb2312_BIN 对应 gbk_chinese_CIPS:GBK 包括了简体与繁体两种类型新篇:2010-03-09MySQL 中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用 show create table table ; 或 show full fields from tableName; 来检查当前表中字段的字符集设置。MySQL 中关于连接环境的字符集设置有 Client 端,connection, results 通过这些参数,MySQL 就知道你的客户端工具用的是什么字 符集,结果集应该是什么字符集。这样MySQL 就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上 99%的乱码由些造 成。1. 数据库表中字段的字符集设置 。show create table TableName 或 show full columns from tableNamemysql> show create table t1;mysql> show full columns from t1; 查看列的编码类型3. 查看数据库的编码格式show create database test;输出:CREATE DATABASE test /*!40100 DEFAULT CHARACTER SET utf8 */2. 当前联接系统参数 show variables like 'char%'mysql> show variables like 'char%'1. 中文,请确保 表中该字段的字符集为中文兼容:big5 | Big5 Traditional Chinesegb2312 | GB2312 Simplified Chinesegbk | GBK Simplified Chineseutf8 | UTF-8 Unicode其它补充修改数据库的字符集mysql>use mydb 天地棋牌 http:/www.dadiqipaigw.cnmysql>alter database mydb character set utf-8;创建数据库指定数据库的字符集mysql>create database mydb character set utf-8; 2010-05-02 新添加进来show variables like 'character_set_%' 所查看到了几项中其中有这三项是受客户端影响character_set_clientcharacter_set_connectioncharacter_set_results 而这三项是可以通过 set names utf8|set names gbk 来设置的!只是说明当前连接的客户端的编码情况并没有影响到数据库服务器本身的编码情况