繁体   English   中英

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

[英]Read non english UTF-8 content from HTTP request

我有下面的代码。

非英语和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。 或者让您的方法抛出一个异常,该异常将在其他地方捕获/处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM