连接数据库的关键程序:
private ArrayList<BookDetails> books = null;
private String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=gb2312";
private String user = "root";
private String password = "fuyou";
jsp页面关键代码:<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@page import="com.fuyou.bean.BookDetails"%><jsp:useBean id="bookDB" scope="application" class="com.fuyou.database.BookDB"/><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
mysql.ini时关键:
[client]port=3306[mysql]default-character-set=latin1
# SERVER SECTION
我在cmd上用select *from books可以正常显示中文,数据库的编码:mysql> show variables like '%char%';
+--------------------------+-------------
-----+
| Variable_name            | Value
     |
+--------------------------+-------------
-----+
| character_set_client     | latin1
     |
| character_set_connection | latin1
     |
| character_set_database   | latin1
     |
| character_set_filesystem | binary
     |
| character_set_results    | latin1
     |
| character_set_server     | latin1
     |
| character_set_system     | utf8
     |
但在mysql_front上select * from books不能正常显示中文:
jsp和控制台上打印数据库的中文是乱码,用这个 System.out.println(new String(book.getDescription().getBytes("iso8859-1"),"gb2312"));可以正常显示中文!
除了用getBytes()方法,还有什么可以解决乱码?

解决方案 »

  1.   

    解决MySql数据乱码:1 写过滤器设置编码格式(格式和JSP页面的编码一样),或则在请求里面写request.setCharacterEncoding("编码方式");2 如果是查询出数据乱码,在链接的URL上加上编码格式(你这里加了,没问题);3 修改my.ini文件里面的 default-character-set= 您要的编码格式 (一共有两处,你查找一下 改为一样的编码格式)3 如果是写入到数据库之后是乱码(前提是已经写了过滤器处理编码),修改my.ini文件里面查找sql-mode 设置 sql-mode = 
      "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";试试吧!  这是所有乱码的情况! 我用的是MYSQL5.0 解决乱码就这样搞的!!!!!!!
      

  2.   

    数据库编码采用UTF8,同样,修改连接字符串为:jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=utf8
      

  3.   

    将你的default-character-set=latin1 改成default-character-set=gbk试试.
    在安装的时候选择GBK就可以.或者在MY.INI里面改也可以.
      

  4.   

    写过滤器设置编码格式。
    或者是把从数据库中读出的字符先转成byte数组,在编码成utf-8,保证解决问题
      

  5.   

    把  my.ini里面的latin1全部改成  gbk  或者 gb2312
      

  6.   

    解决方法:
    所有的编码都使用一种如:utf8
    1.数据库编码:
      String dbUrl = "jdbc:mysql://localhost:3306/BookDB&useUnicode=true&characterEncoding=utf8";
    2.jsp编码
    <%@ page language="java" contentType="text/html; charset=utf8"%>
    3.增加记录的都转换为utf8编码如下:
      content = new String(content.getBytes("iso8859-1"),"utf8"));