快速业务通道

mysql中文乱码,无法插入中文的解决办法总结

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-07
------------------
| Variable_name | Value |
-------------------------- ---------------------------------------------------------------------------
| character_set_client | latin1 |
| character_set_connection | latin1 |
Empire CMS,phome.net

| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/src/mysql-5.1.11-beta-linux-i686-glibc23/share/mysql/charsets/ |
-------------------------- ---------------------------------------------------------------------------
8 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE ''collation_%'';
---------------------- -------------------
| Variable_name | Value |
---------------------- -------------------
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
---------------------- -------------------
3 rows in set (0.01 sec)
从上面可以看出,使用了配置文件中修改默认字符集的方法,并没有把client、connection、
results这三项改成utf8,在建数据库的时候我们可以通过这样的指令实现数据库的字符集设置:
CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
这样此数据库内的所有表和字段都将为utf8字符集编码,在配置文件中修改的方法也就失去了意义.
b、我的解决办法.
我们可以完全无视数据库默认的字符集是什么,我们关心的只有数据库在建立的时候是不是加入了字符集
选择.
Empire CMS,phome.net

(1)使用如下指令建立数据库:
CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
(2)客户端php程序使用如下方法设定连接所使用的字符集:
PHP程序在查询数据库之前,执行mysql_query("set names utf8;");
例子:
1. <?php
2. mysql_connect(''localhost'',''user'',''password'');
3. mysql_select_db(''my_db'');
4.
5. //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
6. //它的作用是设置本次数据库联接过程中,数据传输的默认字符集
7. mysql_query("set names utf8;");
8.
9. //将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
10. mysql_query(mb_convet_encoding("insert into my_table values(''测试'');","utf-8","gb2312"));
11. ?>
(3)如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号