我装了mysql 5.0,使用的是UTF8,通过JSP页面保存的数据也是UTF8,通过jsp程序检索出来的数据显示正常,但是通过mysql -u root连接的客户端select出来的中文数据全部都乱码。为什么会出现这样的问题?还请高手帮忙。

解决方案 »

  1.   

    还有就是在客户端执行语句
    insert into user(id,name) values(2,'中文')
    时报如下错误:
    ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column 'NAME' at row 1而执行insert into user(id,name) values(2,'english')就没有问题。为什么?
      

  2.   

    但是通过mysql -u root连接的客户端select出来的中文数据全部都乱码那是因为里面存放的是UTF8编码后的字符串。在终端SELECT 前先执行 SET NAMES 'UTF8'
      

  3.   

    设定终端的字符编码也为UTF8就行了。在菜单兰的“终端”-->“设定字符编码”
      

  4.   

    下面文章对你会有帮助
    http://www.programmerstudy.com/database/mysql/20084/142.html
      

  5.   

    我也遇到楼主一样的问题,
    用JDBC连的时候,插入的语句也不会乱码,读出来也正常。就是到了客户端就不行。。mysql> set names 'utf8';
    Query OK, 0 rows affected (0.00mysql> select * from location;
    +----+-------+----------+
    | id | deptn | location |
    +----+-------+----------+
    |  1 | 10    | wuhan    |
    |  2 | 20    | 娣卞湷     |
    |  3 | 20    | 姝︽眽     |
    +----+-------+----------+
    3 rows in set (0.00 sec)
    怎么解决的呀?
      

  6.   

    set   names( "utf8 ") 
    先.
      

  7.   

    有2种可能性:
    1、修改my.ini
    把sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 修改为
    sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    2、你需要两个工具,一个是mysqlodbc下载并按装mysql-connector-odbc-5.1.8-win32一个是navicatformysql。第一步:控制面板->管理工具->数据源。在本地Windows下建立个mysqlODBC数据源,假设命名成visteel  第二步:打开NavicatforMySQL,单击“Connection”按钮设置连接。  第三步:连接上数据库服务器后右键单击数据库服务器选择“NewDatabase…”新建一个数据库。记得“Characterset”选定gbk;  第四步:选中要转换的表,将它们拖到新进的数据库中,在弹出的选项窗中选择“Copyhere(Structureonly)”,将数据表的结构复制到新数据库中;  第五步:在新建的数据库中选中刚导过来的所有的表,右键选择“DumpSQLFile”导出成sql文件;  第六步:用文本编辑器打开刚导出的sql文件,将里面的DEFAULTCHARSET=后面不论是什么,全部替换成DEFAULTCHARSET=gbk,保存修改过的sql文件。  第七步:全选新建的数据库中的所有表,单击“DeleteTable”删除。然后右键单击新建的数据库选择“ExecuteSqlFile…”,找到并双击改过的sql文件,将改过的sql文件重新导回数据库中。  第八步:选中新建的数据库然后再点击:“ImportWizard”按钮。选择ODBC,点下一步。  第九步:点“ImportFrom:”右边的“…”按钮,然后在“数据连接”属性窗口选择“连接”这一页,在“1、指定数据源”中选择在第一步中建立的数据源“visteel”;确定后返回“step2of8”窗口,选中需要转换的表,或者点击“selectall”按钮选择整个数据库的所有的表。连续点击三次“next”按钮后来到“Step7of8”对话框。  第十步:选择“Copy:deleteallrecordsindestination,repopulatefromthesource”:再单击”next”来到“step8of8”对话框。  第十一步:单击按钮“start”开始转换,直到出现信息“[Msg][lmp]Finished-Successfully”。  到此,数据库完美完成了GBK的整理。编辑XOOPS根目录下的mainfile.php文件,将define('XOOPS_DB_CHARSET','gb2312')修改成define('XOOPS_DB_CHARSET','gbk');  将本地数据库导出上传到虚拟主机进行测试,至此,mysql#1366错误全部消失掉了。而且生僻汉字也不再是用??显示了。