mysql的保存中文乱码的情况如下:
 (1)网站本身的编码。看看设置对了没,比如我设置的UTF-8就检查下编码是不是UTF-8。(一般通过文件右击属性来看,或建立工程的时候来统一设置)
 (2)数据库连接字符串的编码。比如java中我连接mysql的相关语句如下:
public static String driverName = "com.mysql.jdbc.Driver";
public static String userName = "root";
public static String userPasswd = "123456";
public static String dbName = "myBook";
public static String url = "jdbc:mysql://localhost/" + dbName + "?user="
+ userName + "&password=" + userPasswd
+ "&useUnicode=true&characterEncoding=GBK";
............................
Class.forName(driverName).newInstance();
connection = (Connection) DriverManager.getConnection(url);
....
 (3)mysql的字符集设置
 一般都是在这里搞错而出现了mysql乱码。
 mysql编码设置可以分为三种设置:数据库的编码、表的编码、和字段的编码。
 a、数据库的编码:
 在sqlyog工具中操作把,右击数据库点击更改数据库,如图

mysql保存中文乱码原因与解决办法_中文乱码

b、表的编码:

 mysql很扯淡的是,表级别也设置了编码,说说咋设置把
mysql保存中文乱码原因与解决办法_mysql_02
右击要修改编码的表,点击更改表如上图,点了以后如下图:
mysql保存中文乱码原因与解决办法_mysql_03

 c、字段的编码:
 mysql字段都有编码设置,还是上面的更改表,不过不点高级属性了。看图:
mysql保存中文乱码原因与解决办法_mysql_04

 
最后再出一个绝招:
SHOW CREATE TABLE 表名
CREATE TABLE `wen` (
 `id` int(8) DEFAULT NULL,
 `bookid` int(8) DEFAULT NULL,
 `title` varchar(200) COLLATE gbk_bin DEFAULT NULL,
 `content` longtext COLLATE gbk_bin
) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC