这是我的代码:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
final ServletInputStream inputStream = req.getInputStream();
int read;
File file = new File("koray.txt");
final FileOutputStream fileOutputStream = new FileOutputStream(file);
while ((read = inputStream.read()) != -1) {
fileOutputStream.write(read);
}
fileOutputStream.flush();
fileOutputStream.close();
}
当我收到这样的 HTTP 请求时:
beer-characteristics=ğ
在 koray.txt 中我会看到:
beer-characteristics=%C4%9F
嗯,c49f 似乎是“ğ”的 utf-8 十六进制值,但为什么我在文件中看到十六进制值,而不是“ğ”本身?
编辑:这也不起作用:
final OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
while ((read = in.read()) != -1) {
outputStreamWriter.write(read);
}
最佳答案
用以下内容包装您的输入流:
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
然后从缓冲读取器中以 utf-8 格式读取数据。
关于java - 如何将 HTTP 请求正文写入 Java Web 应用程序中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878956/