插入的数据出现乱码?

Navicat乱码

myeclipse+Navicat for MySQL
从网页插入数据后,插入的数据是乱码。
勾掉“使用MySQL字符集”选用20936后插入的数据变成中文,
但是原本的数据全变成乱码了。
网上的方法试了好多都没用。
来个大佬帮帮忙吧,新手上路快疯了。。。。。。

应该不会,或者说您的sql文件编码和数据库编码格式不符

字符集 utf8
排序规则 utf8_general_ci

 CREATE DATABASE `` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

20936 是? 你能来张图么

跟踪一下你的代码, 从页面请求到后端处理, 看看你的数据在哪儿乱码了,
或许是在插入数据库之前就乱了. 可以在乱的地方进行一下转码, 转为utf-8 再存MySQL,
不会有问题

---------11-17新更

下面可以处理你的数据乱码问题, 在你后台获取到数据后进行编码转换,将其转换为UTF-8,再进行数据处理,这时存数据库就是不乱码的。
建议你跟踪调试一下数据在哪里乱码了,你这既然中间变成GB2312了,还是存在一处默认编码没有修改为UTF-8.

import java.io.UnsupportedEncodingException;

/**
 * (1)转换字符串的编码
 */
public class ChangeCharset {

  public static final String GB2312 = "GB2312";//GB2312

  public static final String UTF_8 = "UTF-8";

 /**
  * 字符串编码转换的实现方法
  * @param str  待转换编码的字符串
  * @param oldCharset 原编码
  * @param newCharset 目标编码
  */
 public static String changeCharset(String str, String oldCharset, String newCharset)
   throws UnsupportedEncodingException {
  if (str != null) {

   byte[] bs = str.getBytes(oldCharset);//用旧的字符编码解码字符串。解码可能会出现异常。

   return new String(bs, newCharset);//用新的字符编码生成字符串
  }
  return null;
 }


public static void main(String[] args) throws UnsupportedEncodingException {

  ...// 获取到数据,进行编码处理
  String str = "This is a 中文的 String!";
  //转换为UTF-8 ,再交互数据库
  str = ChangeCharset.changeCharset(str,ChangeCharset.GB2312, ChangeCharset.UTF_8);

  ...//交互数据库
 }
}

1、先检查mysql字符集是不是UTF-8的。
2、可以在程序中增加过滤器3
3、在链接字符串后加上 useUnicode=true&characterEncoding=UTF-8

首先将myeclipse里需要设置编码的地方全部设置成utf-8包括jsp的,然后就是debug后台查看数据是否是乱码,然后就是去MySQL,看看你插入的字段的字符集是什么,是不是utf-8等,还有就是如同**sophialex**说的在链接字符串后加上 useUnicode=true&characterEncoding=UTF-8。

图片说明
图片说明
图片说明
我都傻了。