没什么问题,既然设置数据库字符集是utf-8,那么所谓的乱码就很正常(这取决于你使用何种mysql管理工具)。
当然写入数据库最好也要保持 utf-8 字符编码。

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4635/4635785.xml?temp=.8626062
      

  2.   

    谢谢提示!
    我用的是MySQL - 5.0.19-nt和phpMyAdmin - 2.8.0-rc2,
    即便是选择UTF-8数据库里仍然都是乱码,查找很麻烦,如何让数据库显示
    正常的汉字?
    请问又如何让网页以UTF-6格式向数据库发送呢?
    不胜感激!
      

  3.   

    我的系统是这样的:
    我在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>"; 
    }
     
    ?>我也是这个问题!你是这样吗?
      

  4.   

    问题原因:页面中使用的不是utf-8,而数据库中是,
    仔细察看手册,数据库设置中应该是有设置 传入数据的编码和返回结果的编码,把这两个设置与页面一致就没有问题了.
      

  5.   

    个人感觉问题也是出在页面向数据库写的过程(数据库中直接输入汉字没问题,但读取成乱码;网页显示汉字没问题,但写入数据库后变乱码),
    所以现在问题是:如何更改页面输入编码为utf-8?
      

  6.   

    你的网页编码如果是utf-8的,那么输入就是utf-8了
      

  7.   

    参考这个文件头:<!DOCTYPE html PUBLIC "-//W3C//DTD html 4.01 Transitional//EN">
    <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); 四、其它......
      

  8.   

    如果你的语言文件和程序文件不分开的话,那么你必须把每个文件都保存为 utf-8编码的格式,否则打开浏览器就会出现乱码。
      

  9.   

    还是不懂,BOM是什么?
    我新建的网页默认为<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    但是myadmin中显示MySQL 字符集为 UTF-8 Unicode (utf8),
    那我如何改变MySQL的字符集为gb2312呢?
      

  10.   

    说远了。如果页面是gb2312,在每次连接数据库后使用set names gbk,
    如果页面是utf8,在每次连接数据库后使用set names utf8,然后插入读出的数据应该都是正确的,
    在phpmysql里应该也能看到正常的汉字。
      

  11.   

    连接数据库后设置set names utf8就好了
      

  12.   

    原来是这样,那set names gbk或者set names utf8在那里写呢?
    例如:
       $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);
      

  13.   

    现在Myadmin中显示:MySQL 字符集: UTF-8 Unicode (utf8) 
                      MySQL 连接校对:  整理Utf8_Unicode_ci   
    那又如何改变 MySQL 字符集为gb2312呢?
      

  14.   

    mysql_connect();
    mysql_query("set names 'utf8'");
      

  15.   

    谢谢大家的关注与支持!
     加入mysql_connect();
    mysql_query("set names 'utf8'");
    数据库还是显示乱码......
    现在想改变 MySQL 字符集为gb2312,应该如何设置呢?
      

  16.   

    我不管用哪种编码都是正常的,没遇到过这样的情况,我用的数据库与编码一直是正常的。如果你的 phpmyadmin显示的内容都是乱码,那就....自己慢慢研究啊,呵呵。
      

  17.   

    conStr = "jdbc:mysql://localhost/xxx?user=xxx&password=xxx&characterEncoding=gb2312";