注意语句顺序 防止Servlet Request Response乱码
2010-09-18 13:32
232 查看
servlet乱码一般分为Request发生乱码和Response发生乱码
对于Request发生乱码一般是由于tomcat容器的默认编码是ISO-8859-1
而Java中的编码是UTF-8的,因此可以对
String myparam=request.getParameter("myparam");
得到的参数进行编码转化
myparam = new String(myparam.getBytes("ISO-8859-1"),"UTF-8");
对于Response发生乱码是由于页面不知道发送来的数据的编码格式
一般可以使用:
response.setCharacterEncoding("utf8");
注意这一句一定要在
PrintWriter out=response.getWriter();
获得输出对象之前,否则编码的设置将不能对输出流生效,也就发生乱码了
网上有很多解决乱码的文章和方法.但很少有提到要注意这个语句顺序的
这是实验验证的结论,而且从逻辑上也是说的通的.
写作则能避免乱码:
response.setCharacterEncoding("utf8");
PrintWriter out=response.getWriter();
写作
PrintWriter out=response.getWriter();
response.setCharacterEncoding("utf8");
则是无效的设置,不能解决乱码.
一个消除乱码的demo代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String myparam=request.getParameter("myparam");
myparam = new String(myparam.getBytes("ISO-8859-1"),"UTF-8");
response.setCharacterEncoding("utf8");
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.write("汉字");
}
对于Request发生乱码一般是由于tomcat容器的默认编码是ISO-8859-1
而Java中的编码是UTF-8的,因此可以对
String myparam=request.getParameter("myparam");
得到的参数进行编码转化
myparam = new String(myparam.getBytes("ISO-8859-1"),"UTF-8");
对于Response发生乱码是由于页面不知道发送来的数据的编码格式
一般可以使用:
response.setCharacterEncoding("utf8");
注意这一句一定要在
PrintWriter out=response.getWriter();
获得输出对象之前,否则编码的设置将不能对输出流生效,也就发生乱码了
网上有很多解决乱码的文章和方法.但很少有提到要注意这个语句顺序的
这是实验验证的结论,而且从逻辑上也是说的通的.
写作则能避免乱码:
response.setCharacterEncoding("utf8");
PrintWriter out=response.getWriter();
写作
PrintWriter out=response.getWriter();
response.setCharacterEncoding("utf8");
则是无效的设置,不能解决乱码.
一个消除乱码的demo代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String myparam=request.getParameter("myparam");
myparam = new String(myparam.getBytes("ISO-8859-1"),"UTF-8");
response.setCharacterEncoding("utf8");
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.write("汉字");
}
相关文章推荐
- 注意语句顺序 防止Servlet Request Response乱码
- 注意语句顺序 防止Servlet Request Response乱码
- 注意语句顺序 防止Servlet Request Response乱码
- 注意语句顺序 防止Servlet Request Response乱码
- 汇编语句书写注意,一些汇编小程序
- Hibernate写查询语句注意事项
- 详细剖析SQL查询(select语句)的每一步的逻辑处理---查询顺序及逻辑处理过程
- While中语句执行顺序的问题
- java基础——流程控制语句(顺序结构)
- sql语句中几个需要注意的点
- [海康开发笔记]将内存片段格式化为C#类对象时需要注意对象的字段顺序
- 使用insert语句时需注意的几点
- Winfrom 窗体加载数据防止抖动的语句
- C语言基础:顺序语句
- 使用这样的SQL语句以防止SQL注入式攻击?
- 用OleDbParameter参数类要注意参数顺序必须和SQL文中参数顺序一致
- mybatis如何直接 执行传入的任意sql语句 并按照顺序取出查询的结果集
- ORCLE-Select 语句执行顺序以及如何提高Oracle 基本查询效率
- SQL语句执行顺序
- Mysql 语句执行顺序