日期:2014-05-17  浏览次数:20552 次

MYSQL数据库乱码
存储中文乱码,好像是字符集不统一,如何设置
<?php

$db_name="students";

$table_name="classone";

$conn=mysql_connect('localhost','root','abcdef') or 

die ("连接数据库服务器失败。".mysql_error());

echo "数据库服务器信息:".mysql_get_host_info($conn)."<br>";

$mysql_command="drop database if exists ".$db_name;

$result=mysql_query($mysql_command);

$mysql_command="create database ".$db_name;

$result=mysql_query($mysql_command) or 

die ("建立数据库失败。".mysql_error());

mysql_select_db($db_name, $conn) or

die ("选择数据库失败。".mysql_error());

echo "数据库名称:$db_name 数据表名称: $table_name <br>";

mysql_query ("SET NAMES 'GB2312'");

$mysql_command="create table ".$table_name;

$mysql_command=$mysql_command."( name varchar(30), numb varchar(40), age int(6))";

$result=mysql_query($mysql_command) or

die ("建立数据表:$table_name 失败!".mysql_error());

echo "成功建立数据表: $table_name <br>";

mysql_query ("SET NAMES 'GB2312'");

$mysql_command="insert into ".$table_name."(name,numb,age) values (\"";

$mysql_command=$mysql_command."刘华\",\"200801\",27)";

$result=mysql_query($mysql_command) or 

die ("数据表:$table_name 增加记录失败!".mysql_error());

echo "成功增加数据表:".$table_name.". 的记录。";

?>


------解决方案--------------------
编码常用的是utf8-general-ci
不只是表要通一,要统一的总共有四处
一是:数据库类型,其中包括,数据库,表,字段三处都要统一,可以检查一下
二是:文件的编码类型,你若用dw或editplus可以查看页面编码,不同需修改
三是:访问数据库时的设置既set NAMES utf8;
四是:浏览器显示方式,既<meta charset=utf-8>
不管用GBK,GB2312,这四处必须统一
------解决方案--------------------
ok,这个问题是我前天所遇见的,我的步骤是这样的:
1.所编辑的代码必须是UTF-8无BOM格式的
2.在数据库中设置属性,所有的字段都是用utf-8
3.在你要写进数据库和读出数据库时用添上该代码:
mysql_query("set character set 'utf-8'");
mysql_query("set names utf8");
做好是用构造函数来写出这段代码,方便些
------解决方案--------------------
编码常用的是utf8-general-ci
不只是表要通一,要统一的总共有四处
一是:数据库类型,其中包括,数据库,表,字段三处都要统一,可以检查一下
二是:文件的编码类型,你若用dw或editplus可以查看页面编码,不同需修改
三是:访问数据库时的设置既set NAMES utf8;
四是:浏览器显示方式(html),既<meta charset=utf-8>
五是:php文件头加上(ajax调用时有时候还需要转换函数)
PHP code
header('Content-Type: application/x-www-form-urlencoded');
header('Content-Type: text/html;charset=utf-8');