当前位置: 首页 > 知识库问答 >
问题:

JSP中的多部分形式,Glassfish中的编码问题

闾丘京
2023-03-14

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

如果我输入“Pêche”,我会得到“Pêches”。这就是编码问题。我试了几次思考,但都没用。

  • 我尝试添加过滤器(JSP中的编码问题)
  • 我尝试在web.xml中添加jsp属性(在glassfish 3.1中无法将字符集从ISO-8859-1更改为UTF-8)
  • 我试图改变字符编码我自己在java代码request.set字符编码("UTF-8");
  • 我尝试添加VM参数(在glassfish 3.1中无法将字符集从ISO-8859-1更改为UTF-8),但因此无法添加(Eclipse-在Run Configurations中找不到服务器)
  • 我将这个“接受=”UTF-8“接受-charset=”UTF-8“”添加到我的
  • 我添加了

我仍然有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>

还有其他建议吗?


共有3个答案

艾俊晖
2023-03-14

尝试添加以下内容:

<%@ 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");
耿玄裳
2023-03-14

我刚刚面对同样的问题。我想你可以暂时把这个设置在glassfish-web.xml:

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

这对我来说很有用。

池阳伯
2023-03-14

最后,它似乎是一只玻璃鱼虫子:https://java.net/jira/browse/GLASSFISH-18516

用这个问题解决得很好:<代码>新字符串(s.getBytes(“iso-8859-1”),“UTF-8”) (https://stackoverflow.com/a/549634/1458542)

 类似资料:
  • 我想从Perl向REST API服务发出一个POST请求。作为POST表单参数,服务需要一个多部分编码的文件。 我写了上面的代码。但是显然REST服务器无法理解POST请求,因为我只将文件路径发送到REST服务,而不是多部分编码的文件内容。有人能告诉我如何使文件多部分编码并将其作为POST请求发送到REST服务,而REST服务期望多部分编码的文件作为表单参数吗? 作为补充说明,我实际上想编写与下面

  • 我的web应用程序存在编码问题。在Begging会议上,我认为问题在于数据库编码,但后来我排除了Servlet的bug。如下所示:JSP页面包含一个表单,用户在其中传递一个具有波兰字符的单词,例如“Poniedziałek”,然后我对接收此参数并将其传递给变量的servlet进行除错。变量中的结果为“PoniedziaÅek”。 我的JSP文件中的编码设置为UTF-8 我还尝试使用servlet设

  • 你好,伙计们,我有一个问题,在一个角4.3+Spring引导Rest应用程序上张贴多部分表单-数据。无论我在Java方法中放入什么参数,我都会得到消息“Required request part'arquivo'is not present”或“Required request parameter'arquivo'is not present”。

  • 该项目使用JSP、Servlets、Jquery、Tomcat6。 JSPs中的Charset设置为UTF-8,所有Tomcat连接器都使用uriencoding=UTF-8,我还使用了一个字符编码过滤器,如下所述。另外,我在meta标记中设置了contentType,我的浏览器会正确地检测到它。 在使用Jquery的Ajax调用中,我使用encodeURIComponent()作为URL参数,然

  • 我有一个JSP页面,我从下面的属性文件中获取URL- 它的用法如下- 我收到了veracode问题CWE-80(网页中与脚本相关的HTML标记的不正确中和),用于。 有什么更好的方法可以解决这个Veracode问题?

  • 我尝试做一个java web应用程序。在本地Tomcat7服务器上一切都很好。我有一个jsp文件;