菜鸟用jsp往数据库添加的中文显示为乱码“?” 求大侠帮忙解决

woshizhanghuicheng 2011-10-17 05:15:13
我的配置环境:window xp;myEclipse6.5 ;MySQL 5.5; jdk1.6.0_10;apache-tomcat-7.0.19
我数据库的字符集信息:输入show variables like 'character\_set\_%';
显示的是:图片上传不了
输入show variables like 'collation_%';
显示的是:图片上传不了

数据库部分信息,我是往bookinfo添加数据的,第二条数据为我添加的,中文显示的都是"?":/*
SQLyog Enterprise - MySQL GUI v6.14
MySQL - 5.5.14 : Database - library
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

create database if not exists `library`;

USE `library`;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*Table structure for table `bookinfo` */

DROP TABLE IF EXISTS `bookinfo`;

CREATE TABLE `bookinfo` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`bookname` varchar(70) DEFAULT NULL,
`author` varchar(30) DEFAULT NULL,
`publishing` varchar(50) DEFAULT NULL,
`publishingtime` varchar(20) DEFAULT NULL,
`page` int(10) DEFAULT NULL,
`price` varchar(20) DEFAULT NULL,
`intime` varchar(10) DEFAULT NULL,
`Isbn` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gb2312 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC;

/*Data for the table `bookinfo` */

insert into `bookinfo`(`id`,`bookname`,`author`,`publishing`,`publishingtime`,`page`,`price`,`intime`,`Isbn`) values (1,'jsp技术开发详解','卢汉鹏','化学工业出版社','1',400,'58','2011-10-17',NULL),(2,'jsp???????','???','???????','0910',420,NULL,'20111017','A209');

/*Table structure for table `users` */

jsp页面头部的信息如下:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户界面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<link href="css/style1.css" type="text/css" rel="stylesheet">
</head>
我还参照教程用了过滤器来处理中文,已经配置好,如下:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//将所有request内的对象设置字符集为gb2312
request.setCharacterEncoding("gb2312");
//将所有response内的对象设置字符集为gb2312
response.setCharacterEncoding("gb2312");
//用chain的doFilter处理过滤
chain.doFilter(request, response);
}

除了以上文件,涉及的还有连接数据库、servlet、等几个JAVA文件,如果需要这些文件信息或其它的信息我再补上,真心真意想大侠们帮我,因为我已经为这个问题困扰很久了,跪谢!!
...全文
42 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
24K純帥 2011-10-17
  • 打赏
  • 举报
回复
1L是个好建议,连接数据库的语句也加上characterEncoding=utf8
LoongMint 2011-10-17
  • 打赏
  • 举报
回复
建议楼主 将mysql字符集、项目编码等都改为UTF-8.

81,092

社区成员

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

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