mysql乱码?

fuyou001 2008-04-04 03:03:56
连接数据库的关键程序:

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()方法,还有什么可以解决乱码?
...全文
236 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnt52 2008-04-04
  • 打赏
  • 举报
回复
解决方法:
所有的编码都使用一种如: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"));

fuyou001 2008-04-04
  • 打赏
  • 举报
回复
自己up!我试了楼上的几和方法,还不行!
SystemKing 2008-04-04
  • 打赏
  • 举报
回复
把 my.ini里面的latin1全部改成 gbk 或者 gb2312
yangyongqiang 2008-04-04
  • 打赏
  • 举报
回复
写过滤器设置编码格式。
或者是把从数据库中读出的字符先转成byte数组,在编码成utf-8,保证解决问题
boyaiboy 2008-04-04
  • 打赏
  • 举报
回复
将你的default-character-set=latin1 改成default-character-set=gbk试试.
在安装的时候选择GBK就可以.或者在MY.INI里面改也可以.
fuyou001 2008-04-04
  • 打赏
  • 举报
回复
utf8也没用
B-A-I 2008-04-04
  • 打赏
  • 举报
回复
数据库编码采用UTF8,同样,修改连接字符串为:jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=utf8
montao 2008-04-04
  • 打赏
  • 举报
回复
解决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 解决乱码就这样搞的!!!!!!!
nanjg 2008-04-04
  • 打赏
  • 举报
回复
设置filter 解决编码问题
fuyou001 2008-04-04
  • 打赏
  • 举报
回复
人呢?我在线等答案!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧