我的系统是这样的: 我在mysql administror信息如下: mysql version mysql 5.0.19-nt via tcp/ip client version: mysql client version 5.0.11php的版本:PHP Version 5.1.2 (装在W2k的IIS5.0)my.ini 里也改成: default-character-set=gb2312 所有修改保存后重启了mysql我建了一个数据库,表格和字段 character set 都是 gb2312用这样的语句从数据库出来的中文还是显示为:??? (在数据库表里能正常显示中文),其它php页面中的中文可正常显示<?php $conn=mysql_connect ("localhost", "root", "123"); mysql_select_db("myeditor"); $exec="select * from mynews "; $result=mysql_query($exec); while($rs=mysql_fetch_object($result)) { echo "标题:".$rs->title."<br>"; }
我用的是MySQL - 5.0.19-nt和phpMyAdmin - 2.8.0-rc2,
即便是选择UTF-8数据库里仍然都是乱码,查找很麻烦,如何让数据库显示
正常的汉字?
请问又如何让网页以UTF-6格式向数据库发送呢?
不胜感激!
我在mysql administror信息如下:
mysql version mysql 5.0.19-nt via tcp/ip
client version: mysql client version 5.0.11php的版本:PHP Version 5.1.2 (装在W2k的IIS5.0)my.ini 里也改成: default-character-set=gb2312
所有修改保存后重启了mysql我建了一个数据库,表格和字段 character set 都是 gb2312用这样的语句从数据库出来的中文还是显示为:??? (在数据库表里能正常显示中文),其它php页面中的中文可正常显示<?php
$conn=mysql_connect ("localhost", "root", "123");
mysql_select_db("myeditor");
$exec="select * from mynews ";
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
{
echo "标题:".$rs->title."<br>";
}
?>我也是这个问题!你是这样吗?
仔细察看手册,数据库设置中应该是有设置 传入数据的编码和返回结果的编码,把这两个设置与页面一致就没有问题了.
所以现在问题是:如何更改页面输入编码为utf-8?
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />如果你的程序文件和语言文件分开的话,值得注意的有几点:
一、请将语言文件保存为无BOM的 UTF-8格式文件,否则进行 cookie等操作时会出现警告错误。
二、最好统一包含一个文件头文件,采用的格式为带 BOM 的 UTF-8格式文件,这样不管用户怎么改变网页编码都不会出现乱码,这也是UTF-8编码的好处之一。
三、如果您的php文件不是采用utf-8编码,提交表单时,如果您采用下面语句替换全角空格时并不起作用:$article_name = str_replace(' ', '', $article_name); 需要改成(参考):
$string_space = iconv("GB2312", "UTF-8", ' ');
$article_name = str_replace($string_space, '', $article_name); 四、其它......
我新建的网页默认为<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
但是myadmin中显示MySQL 字符集为 UTF-8 Unicode (utf8),
那我如何改变MySQL的字符集为gb2312呢?
如果页面是utf8,在每次连接数据库后使用set names utf8,然后插入读出的数据应该都是正确的,
在phpmysql里应该也能看到正常的汉字。
例如:
$mysql_server_name = "localhost";
$mysql_username = "123";
$mysql_password = "123";
$mysql_database = "123";
$ip=getenv('REMOTE_ADDR');
$conn=mysql_connect( $mysql_server_name, $mysql_username, $mysql_password );
$sql = "SELECT * FROM `counter` WHERE ip='$ip'";
$result=mysql_db_query( $mysql_database, $sql,$conn );
$row=mysql_fetch_row($result);
print_r($row);
mysql_free_result($result);
if(!$row)
{
$conn=mysql_connect( $mysql_server_name, $mysql_username, $mysql_password);
$sql = "INSERT INTO `counter` ( `name` , `new`,`ip`,`time_at` ) VALUES ('', '1','$ip',NOW())";
mysql_select_db($mysql_database,$conn);
$result = mysql_query($sql);
mysql_close($conn);
MySQL 连接校对: 整理Utf8_Unicode_ci
那又如何改变 MySQL 字符集为gb2312呢?
mysql_query("set names 'utf8'");
加入mysql_connect();
mysql_query("set names 'utf8'");
数据库还是显示乱码......
现在想改变 MySQL 字符集为gb2312,应该如何设置呢?