JSP中文字符处理心得

    技术2022-05-11  1

    JSP中文乱码处理

        基于Tomcat中间件处理JSP中文时提交后出现乱码,最终问题解决方案:

        鉴于网络上各种各样的解决方案,有基于环境、有基于URI等,但为避免兼容性问题,应该以运行代码自我设置来解决。

    JSP代码中的 JAVA 字符编码设置

    <%@page contentType="text/html"%><%@page pageEncoding="UTF-8"%><%@page import="java.net.URLEncoder"%>(好像上条语句并非必要)

    红色为制定JSP处理字符采用UTF-8编码处理方式。

    <%request.setCharacterEncoding ("UTF-8");%>JSP内JAVA代码设定接收参数为UTF-8编码,在form提交,post还是get都支持中文,如果没有该设定,就只能使用get方式。

    JSP 内 HTML 头的编码设置<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <title>Note Page</title>  </head>  <body>…………

    红色部分UTF-8制定HTML页面使用的编码方式

    form 提交代码如下

    <form action=index.jsp method="post"><h3>Please Input Your Name:</h3><input type="text" size="30" name="yourname" value="" ><input type=submit value="提交"></form>

    接收代码如下:

    <%String temp1 = request.getParameter ("yourname");……%>

         超链接参数传递方式略有不同,若只采用以上设定,遇中文参数,直接提交会导致部分文字获取参数,再提交前务必进行编码。

    <a href="<%=request.getContextPath()%>/index.jsp?yourname=<%=java.net.URLEncoder.encode (Joho,"UTF-8")%>"><%=MyName%></a>

        由java.net.URLEncoder.encode函数将要发送的变量解析为16进制数字编码,进行URL传递,若不编码接收到的信息很可能是/ufffd或者是残缺的中文,示范接收代码如下:

    <%String str = request.getParameter ("传递的参数名");%><p>Hello: <%=str%></p>

    由此,获得参数后的str内将是正确的中文信息。

        设置完毕将完美解决JSP中文字符参数问题,MySQL也同样设置为UTF-8编码,数据库存取没问题,Tomcat服务器环境进行任何设置。

    欢迎批评讨论 


    最新回复(0)