Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将非英语字符的数据传递到web服务器_Java_Jsp_Tomcat - Fatal编程技术网

Java 将非英语字符的数据传递到web服务器

Java 将非英语字符的数据传递到web服务器,java,jsp,tomcat,Java,Jsp,Tomcat,从html中,我使用非英语字符的数据访问控制器。 (例如)通过多重测试章url中的字节作为post请求 但在控制器中,数据作为 多字节 有人能帮我解决这个问题吗?你可以在行动方法中使用这个 request.setCharacterEncoding("UTF-8"); 必须在任何请求之前调用此函数。getParameter()调用 只需根据需要更改编码即可 你也可以参考这个 首先,您需要告诉浏览器您正在提供UTF-8内容,并期待UTF-8提交。您可以通过将行放在JSP的最顶端 <%@pa

从html中,我使用非英语字符的数据访问控制器。 (例如)通过多重测试章url中的字节作为post请求

但在控制器中,数据作为

多字节


有人能帮我解决这个问题吗?

你可以在行动方法中使用这个

request.setCharacterEncoding("UTF-8");
必须在任何
请求之前调用此函数。getParameter()
调用

只需根据需要更改编码即可

你也可以参考这个


首先,您需要告诉浏览器您正在提供UTF-8内容,并期待UTF-8提交。您可以通过将行放在JSP的最顶端

<%@page pageEncoding="UTF-8" %>
然后,您需要告诉servlet API使用UTF-8解析POST请求参数。您可以通过创建一个基本上执行以下操作的

@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        req.setCharacterEncoding("UTF-8");
        chain.doFilter(req, res);
    }

    // ...
}
就这些。您不需要而不需要
(这在使用MSIE浏览器时会使事情变得更糟),您不需要而一定需要
(这仅在从本地磁盘文件系统而不是通过HTTP提供页面时才会解释)

请注意,当您使用
System.out.println()
或记录器来验证提交的值时,还应将其配置为使用UTF-8来显示字符,否则您将被误导,因为您仍然会看到

另见:

表单的字符编码是什么?您能告诉我发生了什么最糟糕的事情吗?value“multi”章字节”传递给服务器。但在服务器中,它是以“multiç«byte”的形式接收的,它是以POST的形式传递的?并使用
request.getParameter()读取?是的,它是使用request.getParameter()作为POST和read传递的