看了很多关于Servlet + Tomcat 中文乱码的原理和解决方法
---------------------------------------------------------
更改 C:\JavaSoft\Tomcat5.5\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="9111" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding=´GBK´ />
标记,粗体字是我添加的。
可以这样验证你的更改是否成功:
在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
------------------------------------------------------
我的全部是配置: URIEncoding=´UTF-8´ /
response.setContentType("text/html; charset=UTF-8"); 然而在Servlet中接收到的中文参数值却全部是乱码
后来我用表达式:new String((request.getParameter("trueName")).getBytes("GBK"), "utf-8");却又正确了。怎么会会是GBK呢?最后我把断点设在Servlet最前面,对HttpServletRequest request进行debug发现request.getCharacterEncoding()=null
这样会这样啊?求救各位大侠.....
---------------------------------------------------------
更改 C:\JavaSoft\Tomcat5.5\conf\server.xml,指定浏览器的编码格式为“简体中文”:
方法是找到 server.xml 中的
<Connector port="9111" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding=´GBK´ />
标记,粗体字是我添加的。
可以这样验证你的更改是否成功:
在更改前,在你出现乱码的页面的IE浏览器,点击菜单“查看|编码”,会发现“西欧(ISO)”处于选中状态。而更改后,点击菜单“查看|编码”,会发现“简体中文(GB2312)”处于选中状态。
b)更该 Java 程序,我的程序是这样的:
public class ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=GBK");
...
}
}
------------------------------------------------------
我的全部是配置: URIEncoding=´UTF-8´ /
response.setContentType("text/html; charset=UTF-8"); 然而在Servlet中接收到的中文参数值却全部是乱码
后来我用表达式:new String((request.getParameter("trueName")).getBytes("GBK"), "utf-8");却又正确了。怎么会会是GBK呢?最后我把断点设在Servlet最前面,对HttpServletRequest request进行debug发现request.getCharacterEncoding()=null
这样会这样啊?求救各位大侠.....
解决方案 »
- 大家帮忙看看这是什么意思
- eWebEditor如何获取输入的内容?
- 请教一个关于struts2提交的问题。
- javascript得到控件id的方法,要求该方法兼容IE和火狐
- 如何显示图片出来?
- hibernate多对多关连遇到问题,困绕了几个小时了.请大家帮忙看下.
- 求<spring开发指南>--夏昕 的例子源码
- 高分求购电子版”jsp深度探索“中国青年出版社的,或给最后那个数据库通用bean的代码
- 如何组建JSP环境??? 都需要什么东东????
- [初学]使用springboot的项目在初始化数据库外键时出现了问题,前来请教个demo学习学习
- 如何从子窗口向父窗口传递值
- servlet引起的问题
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
是这样的
request.setCharacterEncoding("utf-8")
就可以了,不用new String((request.getParameter("trueName")).getBytes("GBK"), "utf-8");