我正在开发一个 Flex-Java(客户端-服务器)应用程序,但我遇到了一个问题。我将路径参数发送到服务器并在 JSP 上接收它们,有时,这些参数具有特殊字符,例如áéíóú或ñ。我有一个我认为是常见的问题,我的服务器上错误地接收了这些特殊字符。
我还检查了另一个具有相同问题的问题,例如this one或this other。
我已经尝试request.setCharacterEncoding("UTF-8")
用于接收参数(第一个问题的答案)。
我还尝试在 server.xml 文件上检查我的服务器(Apache Tomcat 7.0.34.0)的配置,并且我确定端口 8080 的节点具有 URIEncoding="UTF-8"
属性(第二个问题的答案)。
我什至尝试像这样阅读参数:
String paramTest1 = (new String(request.getParameter("paramTest").getBytes("ISO-8859-1"),"UTF-8"));
或者
String paramTest2 = (new String(request.getParameter("paramTest").getBytes("UTF-8")));
调试我的应用程序时,我意识到 URI 很受欢迎,问题出在我从请求中读取参数的那一刻。
目前我通过传统方式接收参数,我的JSP代码:
<%@page contentType="text/html" pageEncoding="UTF-8" language = "java"%>
<%
request.setCharacterEncoding("UTF-8");
String paramTest = request.getParameter("paramTest");
String paramTest1 = (new String(request.getParameter("paramTest").getBytes("ISO-8859-1"),"UTF-8"));
String paramTest2 = (new String(request.getParameter("paramTest").getBytes("UTF-8")));
%>
如图所示,我可以为 paramTest 参数发送字符串“1234acentoáéíóúeñe”。我的变量获取参数的值是:
paramTest = 1234acento�����
paramTest1 = 1234acento?????
paramTest2 = 1234acento�����
而且我需要接收与我发送的完全相同的字符。
不知道是否重要,但在 Flex 方面,对于 URLRequest 对象,我("Content-Type", "text/html;charset=UTF-8")
为 requestHeaders Araray 指定了一个 URLRequestHeader 对象。这不符合我的目的。
任何评论或答案都非常感谢。
谢谢。