3

我正在使用 Eclipse 和 Glassfish 从我的 jsp/servlet 中获取无效字符。

如果我输入“Pêche”,我会得到“Pêches”。所以,这是编码问题。我尝试了几种想法,但没有任何效果。

我仍然得到 Mojibake。

这是我的servlet代码:

String name = (String) request.getParameter("templateName");

这是我的jsp内容:

<%@ page pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>....</title>
</head>
<body>
     <form action="<c:url value="/form/edit" />" method="post" enctype="multipart/form-data">

                <input type="text" id="templateName" name="templateName"  />
                <br />

                <input type="submit" value="Valider" class="button button_blue margin_button_form"/>
        </form>
</body>
</html>

还有什么建议吗?

4

4 回答 4

3

最后,它似乎是一个 Glassfish 错误:https ://java.net/jira/browse/GLASSFISH-18516

解决了这个问题new String (s.getBytes ("iso-8859-1"), "UTF-8");:(https://stackoverflow.com/a/549634/1458542

于 2013-05-15T10:57:01.023 回答
1

我刚遇到同样的问题。我想你可以在 glassfish-web.xml 中临时设置它:

<parameter-encoding default-charset="UTF-8"></parameter-encoding>

这对我有用。

于 2013-07-11T23:52:24.263 回答
0

尝试添加这个:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

在你的 Servlet 中添加:

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
于 2013-05-14T10:41:10.670 回答
0

http://www.devsniper.com/glassfish-tips-default-encoding/

此外测试 POST 和 GET 表单,因为它们的处理方式不同。接受属性也对浏览器有用。(例如,没有获取 HTML 实体。)

于 2013-05-14T10:45:07.863 回答