这个问题已经玩了我一天了 网上搜的方法几乎都一样,照那些帖子做还是没用啊
一个小问题搞我这么久快崩溃了....以下是我的情况,大家帮我看看哪里有问题。
tomcat是6.0的
刚重装了下mysql 5.0,装完配置的时候指定新建数据库的字符集是utf8
my.ini配置文件的修改:
[client] 后添加 default-character-set=utf8
[mysql] 和 [mysqld] 后的default-character-set也修改为utf8修改完毕重新启动mysql,进入mysql命令模式,用status;查看 编码信息,如下:
mysql> status;
--------------
C:\MySQL\bin\mysql.exe Ver 14.12 Distrib 5.0.67, for Win32 (ia32)Connection id: 11
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.67-community-nt MySQL Community Edition (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 5 min 56 secThreads: 3 Questions: 104 Slow queries: 0 Opens: 33 Flush tables: 1 Open ta
bles: 18 Queries per second avg: 0.292
--------------jsp页面<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
....
数据库操作类 获得数据库连接
DriverManager.getConnection("jdbc:mysql://localhost:3306/struts?user=root&password=565897&useUnicode=true&characterEncoding=utf-8");
数据库里varchar类型的字段都指定字符集是utf8为何还是乱码,哪里错了?
一个小问题搞我这么久快崩溃了....以下是我的情况,大家帮我看看哪里有问题。
tomcat是6.0的
刚重装了下mysql 5.0,装完配置的时候指定新建数据库的字符集是utf8
my.ini配置文件的修改:
[client] 后添加 default-character-set=utf8
[mysql] 和 [mysqld] 后的default-character-set也修改为utf8修改完毕重新启动mysql,进入mysql命令模式,用status;查看 编码信息,如下:
mysql> status;
--------------
C:\MySQL\bin\mysql.exe Ver 14.12 Distrib 5.0.67, for Win32 (ia32)Connection id: 11
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.67-community-nt MySQL Community Edition (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 5 min 56 secThreads: 3 Questions: 104 Slow queries: 0 Opens: 33 Flush tables: 1 Open ta
bles: 18 Queries per second avg: 0.292
--------------jsp页面<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
....
数据库操作类 获得数据库连接
DriverManager.getConnection("jdbc:mysql://localhost:3306/struts?user=root&password=565897&useUnicode=true&characterEncoding=utf-8");
数据库里varchar类型的字段都指定字符集是utf8为何还是乱码,哪里错了?
解决方案 »
- 如何在jsp页面刷新后给一个form中的textfield赋值
- 如何取得文件输出保存到客户端的路径呢?
- 如何让 request.getParameter() 正常地接收上一个网页传来的中文字符?
- 请教一个有关JSP的问题
- 为什么在jCreator编译下面的程序javax.servlet.*;会提示不存在呢?
- tomcat5与什么版本的Apache整合 ,在什么地方下载,什么安装
- 在存储过程中,怎样能够返回结果集,在线等,急急急!!!!
- 简单问题:servlet将一个bean传给jsp,可是显示总为null
- 有趣的问题:请问我扔出了什么类型的异常?
- 究竟什么时候应该使用servlet??
- jsp有帮助文档没有呀
- 我想jsp方向发展,具体要学习那些课程
mysql重新启动
status;命令显示已将所有编码改为gbk
jsp页面utf-8的地方也改成了gbk
debug显示actionForm得到 中文数据 的时候就已经是乱码了
就用的struts1.2,未使用spring框架传值方式(是否url重写)这个不明白问什么,可以举个笼统点的例子吗
public ActionForward execute(ActionMapping mapping, ActionForm actionFrom, HttpServletRequest request, HttpServletResponse response) throws Exception {
UserInfo_Form form = (UserInfo_Form)actionFrom;//debug过了这里显示form里中文的值都是乱码了
User_info user = new User_info();//用户对象,有登陆名称,密码,年龄等属性。
BeanUtils.copyProperties(user,form.getUser());
Sql_manager sqlm = new Sql_manager();
sqlm.addUser(DB.getConn(), user);
return mapping.findForward("success");
}
写了个filter中文出来了,数据库也没问题 谢谢大家
那就好
刚才在忙自己的项目
其实还可以这样做:
1.在struts-config.xml中加入一个拦截器:
<controller processorClass="tools.RequestProcessorToUTF8"></controller>
2.然后下面是拦截器的代码:public class RequestProcessorToUTF8 extends RequestProcessor { protected boolean processPreprocess(HttpServletRequest request,
HttpServletResponse response) {
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
return super.processPreprocess(request, response);
}}
希望对你有帮助。