mysql数据乱码问题原因及解决(总结篇)

 mysql数据乱码问题原因及解决(总结篇)

 

第一解决方法:

 

      乱码问题简单说就是数据库写入读取,网页文件,网页显示时几个环节的编码不一致造成的。

乱码问题
写入时:页面提取写入数据编码和写入数据库时编码不一致
读取时:读取后所用编码与数据库写入时不一致
显示时:编码与数据库读取后的数据不一致

很显然只有三者都统一才行:(以utf-8为例)
1:页面提交数据编码utf-8(这也可以算是显示页面编码),
2:数据库写入时编码:alter database db default character set ‘utf8’collate ‘utf8-general-ci’,
3:数据库读取时所用编码:mysql_query(“set names ‘utf8’”);
4:显示页面编码:<meta http-equiv="Content-type"content=“text/html, charset=utf-8”>

 

 

第二解决方法:

进入MYSQL命令行:
mysql> alter database you_dbname default character set 'utf8';

mysql> SET character_set_client='utf8';
mysql> SET character_set_connection='utf8'
mysql> SET character_set_results='utf8'

 

 

第三解决方法:

(暂时只针对MySQL 5.0.16 乱码问题处理办法,其他版本未测试。)
1 设置phpMyAdmin

  Language:Chinese simplified (zh-utf-8)

  MySQL 字符集:UTF-8 Unicode (utf8)

  MySQL 连接校对:gbk_chinese_ci

2 创建数据库时

  整理设置成 gbk_chinese_ci

3 用SQL建立表中

  ENGINE=MyISAM DEFAULT CHARSET=gbk;
  ENGINE=InnoDB DEFAULT CHARSET=gbk AUTO_INCREMENT=40 ;

4 检查表结构中

  varchar(100) 的整理属性为gbk_chinese_ci
  其它类型的整理属性为空

5 代码中加上

  $db->query("SET CHARACTER SET GBK");  Linux下需要,Windows下不需要
  这个相当于Connection Character Sets and Collations

以上是个人从网上搜索的一些总结和归纳,相信这个应该能解决所有乱码的问题了。

本文部分内容转载自php100.com,如有问题,请与本人联系。

你可能感兴趣的:(mysql数据乱码问题原因及解决(总结篇))