使用 request.getparameter() 获取西班牙语字符不起作用



我正在尝试使用request.getParameter()方法在Java中获取西班牙语字符。但它正在返回垃圾字符。

网址: http://localhost:8080/myweb/encode.jsp?first_name=Ramón 马丁内斯

编码网址:http://localhost:8080/myweb/encode.jsp?first_name=Ram%C3%B3n%20Mart%C3%ADnez%20

示例 1:

JSP 代码:

   <%  request.setCharacterEncoding("UTF-8");
  String firstname= request.getParameter("first_name");
    %>
    <%=firstname %>

示例 2:

JSP 代码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<%@ page import="org.apache.commons.lang3.StringEscapeUtils,java.net.URLDecoder,java.net.URLEncoder"   %>
      <%  request.setCharacterEncoding("UTF-8");
String firstname = java.net.URLDecoder.decode(((String[])request.getParameterMap().get("first_name"))[0], "UTF-8");
%>

<%=firstname %>

输出:

Ramón Martínez

预期输出:

Ramón Martínez

我们尝试使用以下建议编辑服务器.xml(如何让 UTF-8 在 Java Web 应用程序中工作?它正在工作,但我们不想通过编辑服务器.xml来使用此解决方案。

我们尝试添加以下代码,但这不起作用。

CODE : request.setCharacterEncoding("UTF-8"); 

尝试将<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>放在主 jsp 文件的开头。

希望这有帮助。

最新更新