首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

征集MySQL 乱码现象解决方案

2012-03-06 
征集MySQL 乱码现象想整理一篇中文乱码的贴子。希望能从各位得到一些对各种乱码症状的补充。比如 mysql wi

征集MySQL 乱码现象
想整理一篇中文乱码的贴子。希望能从各位得到一些对各种乱码症状的补充。比如 mysql windows中DOS下中文乱码,php中GBK显示乱码等现象。

http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx

提供症状即可,如同时有解决方法更佳。



[解决办法]
学习一下..其实我觉得MySQL的乱码问题来来去去也是那么两三个原因..
[解决办法]
可以看看我提供的 mysql 命令行下 显示 中文字符 问题:http://topic.csdn.net/u/20090512/16/1f8c65cf-e2fc-4a9f-b95e-950de5871dde.html
Mysql 默认字符设置为 gbk 
在Mysql query browser 可以正确 显示 中文。但是命令行下: 
mysql> status 
-------------- 
C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe Ver 14.14 Distrib 5.1.30, 
for Win32 (ia32) 

Connection id: 1 
Current database: test 
Current user: root@localhost 
SSL: Not in use 
Using delimiter: ; 
Server version: 5.1.30-community MySQL Community Server (GPL) 
Protocol version: 10 
Connection: localhost via TCP/IP 
Server characterset: gbk 
Db characterset: gbk 
Client characterset: gbk 
Conn. characterset: gbk 
TCP port: 3306 
Uptime: 22 min 39 sec 

Threads: 1 Questions: 6 Slow queries: 0 Opens: 15 Flush tables: 1 Open tabl 
es: 8 Queries per second avg: 0.4 
-------------- 

mysql> select * from Course; 
+-----+--------------+------+---------+ 
| Cno | Cname | Cpno | Ccredit | 
+-----+--------------+------+---------+ 
| 1 | | 7 | 4 | 
| 2 | | NULL | 2 | 
| 3 | | 1 | 4 | 
| 4 | | 6 | 3 | 
| 5 | | 7 | 4 | 
| 6 | Java | NULL | 2 | 
| 7 | | 6 | 4 | 
+-----+--------------+------+---------+ 
7 rows in set (0.55 sec) 
不能 显示 中文。正确的应该为: 
Cno | Cname | Cpno | Ccredit | 
+-----+--------------+------+---------+ 
| 1 | 数据库系统 | 5 | 4 | 
| 2 | 高等数续 | NULL | 2 | 
| 3 | 信息系统 | 1 | 4 | 
| 4 | 操作系统 | 6 | 3 | 
| 5 | 数据结构 | 7 | 4 | 
| 6 | Java程序设计 | NULL | 2 | 
| 7 | 编译原理 | 6 | 4 | 
mysql> show full columns from Course; 
+---------+--------------+----------------+------+-----+---------+-------+------ 
---------------------------+---------+ 
| Field | Type | Collation | Null | Key | Default | Extra | Privi 
leges | Comment | 
+---------+--------------+----------------+------+-----+---------+-------+------ 
---------------------------+---------+ 
| Cno | varchar(10) | gbk_chinese_ci | NO | PRI | NULL | | selec 
t,insert,update,references | | 
| Cname | varchar(50) | gbk_chinese_ci | YES | | NULL | | selec 
t,insert,update,references | | 
| Cpno | varchar(10) | gbk_chinese_ci | YES | MUL | NULL | | selec 
t,insert,update,references | | 
| Ccredit | smallint(10) | NULL | YES | | NULL | | selec 
t,insert,update,references | | 
+---------+--------------+----------------+------+-----+---------+-------+------ 
---------------------------+---------+

mysql> set names 'latin1'; 
mysql> select * from Course; 
+-----+----------+------+---------+ 
| Cno | Cname | Cpno | Ccredit | 
+-----+----------+------+---------+ 


| 1 | ???? | 7 | 4 | 
| 2 | ???? | NULL | 2 | 
| 3 | ???? | 1 | 4 | 
| 4 | ???? | 6 | 3 | 
| 5 | ????? | 7 | 4 | 
| 6 | Java???? | NULL | 2 | 
| 7 | ???? | 6 | 4 | 
+-----+----------+------+---------+ 
7 rows in set (0.20 sec) 

mysql> show full columns from Course; 
+---------+--------------+----------------+------+-----+---------+-------+------ 
---------------------------+---------+ 
| Field | Type | Collation | Null | Key | Default | Extra | Privi 
leges | Comment | 
+---------+--------------+----------------+------+-----+---------+-------+------ 
---------------------------+---------+ 
| Cno | varchar(10) | gbk_chinese_ci | NO | PRI | NULL | | selec 
t,insert,update,references | | 
| Cname | varchar(50) | gbk_chinese_ci | YES | | NULL | | selec 
t,insert,update,references | | 
| Cpno | varchar(10) | gbk_chinese_ci | YES | MUL | NULL | | selec 
t,insert,update,references | | 
| Ccredit | smallint(10) | NULL | YES | | NULL | | selec 
t,insert,update,references | | 
+---------+--------------+----------------+------+-----+---------+-------+------ 
---------------------------+---------+ 
4 rows in set (0.11 sec) 

mysql> show variables like 'char%'; 
+--------------------------+---------------------------------------------------- 
-----+ 
| Variable_name | Value 

+--------------------------+---------------------------------------------------- 
-----+ 
| character_set_client | gbk 

| character_set_connection | gbk 

| character_set_database | gbk 

| character_set_filesystem | binary 

| character_set_results | gbk 

| character_set_server | gbk 

| character_set_system | utf8 

| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\chars 
ets\ | 
+--------------------------+---------------------------------------------------- 
-----+ 
8 rows in set (0.08 sec) 

当前代码页 是936 (ANSI/OEM - 简体中文 GBK) 


期待解决。
[解决办法]
在安装MYAQL 时选着GB2132编码,同时把控制台的选项也选上就可以了,有时候也是很怪,前几天做的一个,一开始不行,重装几次突然就好了
[解决办法]
将mysql设置为utf-8的,然后通过jdbc往里面写gb2312的,在mysql里看就是乱码
[解决办法]
将mysql设置为utf-8
使用数据库时候使用,phpmyadmin,好用多了!
[解决办法]
好好看一下文档, 就不会有这困扰了.

90%是连接(客户端)字符集设置错的原因,
所谓连接字符集,就是告诉mysql, 你的应用环境是什么编码, mysql自动将服务端的编码转换成客户端编码.

所以大家不要去考虑服务端到底什么编码, 什么default、server、db、column 字符集统统不要去管它。除非是latin1字符集.

你要做的,是确认,你应用环境的编码是什么环境,所谓的应用环境,就是你开发语言或者是接口软件,如果无法确认,无非就几种 gbk, ucs2,UTF8
依次set names xxx, 碰到那个是,就OK了。
[解决办法]
用jsp提交数据到数据库,连接数据库没加useUnicode=true&setcharacterEncoding=gb2312;数据库显示信息会出现乱码;
[解决办法]
我遇到过 数据编程问号的情况,主要是从文本导入后,有些数据变成了 ‘?’
不知道是什么原因 请大家分析
------解决方案--------------------


PHP code
    $conn = mysql_connect("192.168.1.133", "root", "123456") or        die("Could not connect: " . mysql_error());    $program_char = "utf8";    $conn.mysql_select_db("test");    //$conn.mysql_query('SET @@character_set_results = "'.$program_char.'"');        mysql_set_charset($program_char,$conn);     $charset = mysql_client_encoding($conn);    printf ("current character set is %s <br>", $charset);    $result = mysql_query("SELECT id, task_no,pack_path FROM tb_workplan where id = 1 ",$conn);    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {        printf ("ID: %s <br> task_no: %s  <br> pack_path :%s <BR>", $row["id"], $row[1], $row["pack_path"]);      }    $conn.mysql_free_result($result);    $conn.mysql_close(); 

热点排行