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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从HTTP请求中读取非英语UTF-8内容相关的知识,希望对你有一定的参考价值。

我有以下代码。

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

private String readContent(HttpServletRequest request)抛出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 + "
");
    }

//  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。或者让你的方法抛出一个异常,它将在其他地方被捕获/处理。

以上是关于从HTTP请求中读取非英语UTF-8内容的主要内容,如果未能解决你的问题,请参考以下文章

如何读取具有 ANSI 编码和非英文字母的文本文件?

从字符串 Typescript 中删除非英语 [重复]

如何在 C++ 中获取、存储和打印非英语字符串

从 Zip 文件中的文件中读取内容

在内容 100% 完成之前从 HttpResponseMessage 读取标头

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration