jsp中重音字符的问题

use*_*180 4 java encoding jsp struts2

我正在尝试在表单上收集重音字符[áéíóúÁÉÍÓÚ]但未正确发送到操作:

JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
[. . .]
<s:form action="resultRot" method="post" theme="simple">
<s:textfield name="param" theme="simple" size="20" maxlength="20" style="text-transform: uppercase; text-align:center"/>
<s:submit name="submit" key="ejercicios.roturaPalabras.corregir" align="center"/>
Run Code Online (Sandbox Code Playgroud)

当我在action类中选择参数param时,它不包含正确的值.我使用Eclipse,我检查了项目编码是ISO-8859-1

我也尝试过使用UTF-8编码(在我的jsp中):

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Run Code Online (Sandbox Code Playgroud)

我也试过过URLDecoder/Encoder:

String prueba = java.net.URLDecoder.decode(solucionIntroducida, "ISO-8859-1"); 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

And*_*ios 7

最佳做法是UTF-8随处使用.

在这里,你可以找到如何通过改变应用程序服务器的连接器来做到这一点,而其他部分可以在每个简单地指定它JSP(就像你正在做的),或在指定一次web.xml:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)

RequestEclipse中调试(和打印)a ,您需要确保将其UTF-8用作文本文件编码.

转到Preferences- > General- > Workspace- > Text file encoding,然后设置Other: UTF-8

在代码中,确保在将String转换为Byte []或反之时始终指定字符编码:

String str = new String(myByteArray,"UTF-8");
Run Code Online (Sandbox Code Playgroud)

byte[] ba = myString.toByteArray("UTF-8");
Run Code Online (Sandbox Code Playgroud)

这是为了在任何地方保留正确的字符所需的步骤.