zoukankan      html  css  js  c++  java
  • jsp页面中文乱码的解决情况

    首先注意在页面标签中声明好编码格式

    <%@ pagecontentType="text/html;charset=utf-8"pageEncoding="UTF-8"%>

    一般来说,客户端向服务器端传递数据都是通过request(要注意这个request的生命周期,下一次请求意味着另一个request,需要再次设置),可以为这个request设置一下编码格式request.setCharacterEncoding("UTF-8");

    注意:P1->P2->P3需要在p2和p3中都设置一遍

    request.setCharacterEncoding("UTF-8");

     

    <jsp:forwardpage="p2.jsp">

               <jsp:paramname="userName"value="瑞莎"/> </jsp:forward>

    (Loop after forward

           则有些不同 ,需要在p1中的request设置utf-8,这点不是很理解,难道是和forward的特性有关,

    上面三页面传值出现了三次请求,而如果使用forward的话,只会出现一次请求,同时代码的执行顺序是从forward进去,(Loop afterforward)这些代码都不会执行了。同时请求仍然是一个。

    String username2 =newString(username.getBytes("ISO8859_1"),"UTF-8");

    setCharacterEncoding不起作用?

    setCharacterEncoding只针对post 而get还是使用的tomcat配置的默认编码方式

    解决的方法有三个: 
    1.  将GET请求改成POST请求,然后就可以使用request.setCharacterEncoding方法设置编码,并使用request.getParameter方法直接获得中文请求参数了。 
    2.  不用改GET请求,在Servlet中使用如下的代码来得到中文请求参数。 
    String name = newString(request.getParameter("name").getBytes("ISO-8859-1"),"GBK"); (ISO-8859-1是tomcat的默认编码,如果做过修改,这里也要相应的修改
    3.为了保证get数据采用UTF8编码,在server.xml中进行了如下设置 
    <connector port="8080"maxthreads="150" minsparethreads="25"<br="">maxSpareThreads="75"enableLookups="false" redirectPort="8443" 
    acceptCount="100"debug="99" connectionTimeout="20000" 
    disableUploadTimeout="true" URIEncoding="UTF-8"/> 

    Ps: 如果是使用myeclipse的自带的tomcat,则它的配置路径是X:\Workspace\.metadata\.me_tcat\conf

  • 相关阅读:
    C++与AS3
    基于Hadoop的大数据平台实施记——整体架构设计
    as3用鼠标拖动图形拼图——灰常简单的教程
    as3 与js相互通信
    cocos2d-x获取系统时间
    lucene3.6笔记添加搜索功能
    Ubuntu小私房(3)--Uubutnu启动美化大变身
    C++一维数组和指针的关系总结
    poj2486 Apple Tree (树形dp)
    opencv 中cvZero()的使用
  • 原文地址:https://www.cnblogs.com/suijing/p/3379403.html
Copyright © 2011-2022 走看看