java request.getParamater编码utf-8

ryevplcw  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(97)

我想从请求中获取我的参数(带重音的字符),但它不起作用。
我试着用user request.setCharacterEncoding(“UTF-8”),但也不起作用。这个问题怎么解决?谢谢。

n6lpvg4x

n6lpvg4x1#

ServletRequest.setCharacterEncoding的文档说明如下。
...必须在阅读请求参数或使用getReader()读取输入之前调用此方法。否则,它没有任何效果。
ServletRequest(JavaEE 7 JavaDoc)
如果这没有帮助,您可以将byte数组转换为新的String对象,并提供字符集。

try (InputStream stream = new DataInputStream(request.getInputStream())) {
    byte[] bytes = stream.readAllBytes();
    String string = new String(bytes, StandardCharsets.UTF_8);
}

此外,您可以尝试使用以下命令,而不是显式键入“UTF-8”。

request.setCharacterEncoding(StandardCharsets.UTF_8.name());

相关问题