mysql字符编码集

游客

标题:mysql字符编码集
正文:
mysql字符编码集来源:www.ik8.com 2008年05月31日 星期六 下午 09:18
我们经常在telnet终端操作MySQL数据库时会遇到中文乱码问题，这主要是因为字符集设定错误造成的。这里面涉及到好几个地方的字符集设置，如果我们搞清楚它后面的原理，就可以很容易解决这些乱码问题。 　 　在MySQL的客户端上执行一次查询的过程一般是，在客户端的提示符后面输入一条SQL语句，回车，然后终端显示出查询的结果。这个过程中，只有终端和 三个MySQL的系统变量指定了正确的字符集，才能保证我们将一个正确的SQL语句送到服务器，然后服务器返回正确的结果，并且在终端正确显示。　　三个MySQL的系统变量是：　　①character_set_client，终端字符集，告诉Server客户端提交的SQL语句的编码格式　　②character_set_connection，连接字符集，是服务器翻译SQL语句时用到的编码格式　　③character_set_results，返回的结果集的字符集，是服务器返回结果集之前把结果集转换成的编码格式　　在MySQL终端通过执行命令 show variables like 'char%'; 可以查看这几个变量的值。这三个变量通常都设定为同一种字符集，用命令set names [charset name]; 就可以修改这三个变量的值。一般来说，只要你设定了能够表示你的数据的字符集，你查询的结果都可以在终端正确显示。比如你在数据库中存入了中文数据，不管 存入时使用的什么字符集，你在终端即可以用set names命令设置为utf8，也可以设置为gbk编码，只要你的终端显示的字符集和你的设定一致就可以正确处理中文。　　举个例子，使用的表t1是utf8编码，表中的字段c1继承了这个编码，表创建如下　　mysql&gt; create table t1 ( c1 text not null ) character set utf8;　　用的字符是汉字&ldquo;范&rdquo;，gbk编码为B7 B6，utf8编码为E8 8C 83　　用下面的SQL语句插入数据：　　mysql&gt; insert into t1 values ('范');　　1、如果终端设置为utf8，并且执行了 set names utf8，那么插入到数据库中
[<<][[1]][2][3][>>]

查看评论(0)
发表评论

首页