gpt4 book ai didi

java - Tomcat8 UTF-8 显示为问号

转载 作者:行者123 更新时间:2023-11-28 23:28:59 26 4
gpt4 key购买 nike

我已经阅读了好几天,但无法解决这个问题!

好的。我有一个基于 GET 参数制作字节数组并将其发送到服务器的 webapp。然后回复被解密,我有将其解析为 JSON 的代码。

InputStream myis = new ByteArrayInputStream(decryptedPayload);
new Avatar(myis);

decryptedPayload 是一个 byte[]。

有些字符是外来字符,例如俄语或中文。这些只是没有通过 GET 参数正确发送,或者当我收到东西并将其打印出来时...

例如这里是一个 UTF-8 字符 ж当我尝试通过 GET 参数传递它时,我没有得到正确的响应。 http://185.112.249.77:9999/Api/search?search=ж如您所见,ζ 正在更改为 ?,然后不返回任何结果,就好像该字符已实际发送一样,它应该返回结果。

我正在使用 Tomcat8。关于如何解决此问题的任何想法?

谢谢

更新

<%@ page contentType="text/html; charset=UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Character encoding test page</title>
</head>
<body>
<p>Data posted to this form was:
<%
request.setCharacterEncoding("UTF-8");
out.print(request.getParameter("mydata"));
%>

</p>
<form method="POST" action="test.jsp">
<input type="text" name="mydata">
<input type="submit" value="Submit" />
<input type="reset" value="Reset" />
</form>
</body>
</html>

我是在本地主机上做的,顺便说一句,它与我的生产服务器具有相同的配置。 http://localhost:8080/Api/test.jsp?mydata=жä输出“发布到此表单的数据是:Zä”所以它确实按预期工作......

编辑 2:

http://185.112.249.77:9999/Api/test?data=%D0%B6%C3%A4

@WebServlet("/test")
public class test extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public test() {
super();
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");

response.getWriter().println(request.getParameter("data"));
}

}

更新 3

好的,我在 servlet 中将 response.getWriter().println(request.getParameter("data")); 更改为 response.getWriter().println(request.getParameter( "data") +"\n"+ "¢"); 我现在有这个输出:

жä

¢

最佳答案

您的请求默认为:

内容类型:application/json;charset=ISO-8859-1

尝试将 Tomcat 中的所有字符编码设置为 UTF8对此进行测试。

而 UTF-8 转义你的请求,因此:ж 是 %u0436

http://185.112.249.77:9999/Api/Search?search=%u0436

上面的URL返回了很多用这个搜索参数编码的json信息。

您可以使用在线工具,例如 this one进行测试。

关于java - Tomcat8 UTF-8 显示为问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269465/

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