Java 从HTTP请求读取非英语UTF-8内容

Java 从HTTP请求读取非英语UTF-8内容,java,http,utf-8,internationalization,Java,Http,Utf 8,Internationalization,我有下面的代码 内容为非英语和UTF-8编码的请求。怎么读?目前,我正在这样做,但看起来它是不正确的 私有字符串readContent(HttpServletRequest请求)引发IOException{ String body = null; BufferedReader reader = null; if (logger.isDebugEnabled()) { logger.debug("Inside readContent() ..."); } try { // Re

我有下面的代码

内容为非英语和UTF-8编码的请求。怎么读?目前,我正在这样做,但看起来它是不正确的

私有字符串readContent(HttpServletRequest请求)引发IOException{

String body = null;
BufferedReader reader = null;

if (logger.isDebugEnabled()) {
    logger.debug("Inside readContent() ...");
}

try {
    // Read from request
    StringBuilder buffer = new StringBuilder();
    reader = request.getReader();
    String line;
    while ((line = reader.readLine()) != null) {
        buffer.append(line + "\n");
    }

//  if (body != null) {
        body = buffer.toString();
        body.trim();
//  }

} catch (IOException ex) {
    throw ex;
} finally {
    if (reader != null) {
        try {
            reader.close();
        } catch (IOException ex) {
            throw ex;
        }
    }
}

if (logger.isDebugEnabled()) {
    logger.debug("Leaving readContent() ..." + body);
}
return body;

}

我会这样做,并使用Apache Commons IOUtils。您只需要指定您的编码

InputStream inputStream = request.getInputStream();
String contentAsString = IOUtils.toString(inputStream, "UTF-8"); 

您可以使用try/catch块来处理可以抛出的IOException。或者让您的方法抛出一个异常,该异常将在其他地方被捕获/处理。

请参见@user7294900:I'm creating reader this:reader=request.getReader();这样我就可以做reader.readLine()。如何使用你提供的链接来实现这一点这是更具体的,但也没有从这个链接中得到太多信息。如果你能解释一些我需要的代码,我将不胜感激