0

我有两个jsp页面。我正在尝试添加“俄语”语言。俄语字符在 jsp 页面上完美显示,但是当我尝试将此值从参数发送到另一个 jsp 页面时,在第二个 jsp 页面中,此值更改为不同的字符。这个问题只存在于俄语中,而不存在于其他语言中,例如意大利和法语。

例如

  On demo.jsp page  the russian character  "приветствие"  is shown correctly. 
 but when I try to send it to another page  "test.jsp"  then some unknown 
 characters are shown like "!C<Cä5 Cô>CôCC´OD=Cä5!"

代码:demo.jsp

String welcometext=langP.get("welcome");

<jsp:include page="<%=test.jsp%>">
<jsp:param name="wlc" value="<%=Encode.hex8Code(welcometext)%>" />
</jsp:include>  

在 test.jsp

String title = Encode.utfToUnicode(Decode.hex8Decode(request.getParameter("wlc")));
System.out.println(" Russial welcome test "+welcome);

在以查询参数发送它们时,我们需要为俄罗斯添加任何特殊代码吗?

请注意*以下代码已经编写,否则它也会给法语和意大利语言带来问题..

<%@ page contentType="text/html; charset=UTF-8" %>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">   

也尝试了以下但没有帮助!

request.setCharacterEncoding("UTF-8")
4

2 回答 2

0

尝试添加<% request.setCharacterEncoding("UTF-8"); %>到您的主 jsp 页面:

这是我的例子:

演示.jsp

<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Привет</h1>
        <jsp:include page="/test.jsp" flush="true">
            <jsp:param name="wlc" value="Привет"/>
        </jsp:include>  
    </body>
</html>

测试.jsp

<h1>Param values is</h1>
    <%
        String hello = request.getParameter("wlc");
        out.print(hello);
    %>
于 2013-08-20T15:25:06.960 回答
0

我不知道更好的解决方案,但以下代码解决了这个问题。我将变量保留在会话属性中。

演示.jsp

   session.setAttribute("welcometext", welcometext);

测试.jsp

   String welcometest=(String)  session.getAttribute("welcometext");
于 2013-08-20T15:59:25.220 回答