我想从请求中获取我的参数(带重音的字符),但它不起作用。我试着用user request.setCharacterEncoding(“UTF-8”),但也不起作用。这个问题怎么解决?谢谢。
n6lpvg4x1#
ServletRequest.setCharacterEncoding的文档说明如下。...必须在阅读请求参数或使用getReader()读取输入之前调用此方法。否则,它没有任何效果。ServletRequest(JavaEE 7 JavaDoc)如果这没有帮助,您可以将byte数组转换为新的String对象,并提供字符集。
ServletRequest.setCharacterEncoding
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());
1条答案
按热度按时间n6lpvg4x1#
ServletRequest.setCharacterEncoding
的文档说明如下。...必须在阅读请求参数或使用getReader()读取输入之前调用此方法。否则,它没有任何效果。
ServletRequest(JavaEE 7 JavaDoc)
如果这没有帮助,您可以将
byte
数组转换为新的String
对象,并提供字符集。此外,您可以尝试使用以下命令,而不是显式键入“UTF-8”。