apache2.2 转发 post 乱码:apache22+tomcat6+struts2+mysql5.1
描述:
已做的设置:
1.mysql utf8,包括url已加characterEncoding=utf8
2.所有配置文件 utf8编码
3.struts2 utf8已配(默认就是)
4.tomcat URIEncoding="UTF-8" 已配
5.jsp已写<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
在未用apache转发之前,普通form 用POST方式提交,不会乱码,enctype="multipart/form-data"也不会.
使用apache之后,
加了enctype="multipart/form-data"的form post提交到后台的数据编码正常.
未加enctype="multipart/form-data"的普通form post提交后数据中文乱码.
可以预见的是:数据库方面编码没有问题.tomcat接收数据编码也没有问题(未用apache之前正常).
google了一堆,都说修改httpd.conf,但是找了httpd.conf,以及它包含的extra/httpd-languages.conf文件,并没有描述所说的
addDefaultCharset utf8之类的选项添加进去,因此认为apache采用了页面编码,但我的页面编码是utf8,按理来说没有问题.(网上说不设置,则apache会检测请求head的meta项,为了测试,我把jsp头部的 contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"明文写到meta里面去,还是一样不行.)
第一次用apache,出现这个问题,头痛了,望大虾不吝赐教:
apache是否对数据进行了编码?它的默认编码是啥?
如果我的普通form post提交,不加enctype="multipart/form-data",如何使之不乱码?(是否httpd.conf加上addDefaultCharset utf8就可以?测试组已经在测试,因此不能乱改一天也就改个两次配置.)
望有经验的多多发言,thx!
顶者有分,不论有没有答案,明天下班前来结.