连接数据库的关键程序:
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()方法,还有什么可以解决乱码?