gpt4 book ai didi

java - windows-1252 字符 146 正在阻止 POST 数据到达 glassfish v2 中的 servlet

转载 作者:行者123 更新时间:2023-12-01 16:10:27 25 4
gpt4 key购买 nike

向我的 servlet 发出 HTTP POST 请求。 http 请求中有一个发布的表单参数,我在 servlet 中的代码检索该参数以供进一步处理,名为“payload”。当有效负载的值包含 windows-1252 字符“’”(ascii 值 146)时,HttpServletRequest 实例方法 getParameter("payload") 返回 null。 server.log 中没有任何与该问题相关的内容。我们认为用于产生该字符的字符编码是 windows-1252。 glassfish 默认用于 http 请求的字符编码似乎是 ISO-8859-1。 Ascii 值 146 是 ISO-8859-1 中的控制字符。

有人对我如何解决这个问题有任何建议吗?

显示问题的帖子中的 http 请求 header 是:

POST /dbxchange/TechAnywhere HTTP/1.1
CONTENT_LENGTH: 13117
Content-type: application/x-www-form-urlencoded
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Mozilla/4.0 (Windows Vista 6.0) Java/1.6.0_16
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Content-Length: 13117

最佳答案

Java 不关心 Cp1252 和 Latin-1 之间的差异。由于两种编码中都没有无效的字节序列,因此任何一种编码都不会得到 null。我认为您的服务器使用的是 UTF-8,浏览器使用的是 Cp1252 或 Latin1。

尝试将以下属性放入表单中看看是否有帮助,

<form action="..." method="post" charset="UTF-8" accept-encoding="UTF-8"...>

关于java - windows-1252 字符 146 正在阻止 POST 数据到达 glassfish v2 中的 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1457556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com