如何更正 post 查询的更改编码?
How to correct change encoding of post query?
当我在服务器端不使用 setCharacterEncoding 将 post 发送到我的页面时,我得到 фыв
。使用 setCharacterEncoding(UTF-8)
,我得到 ыва
。如何更正 POST 查询的更改字符编码?
P.S.: 我从ServletInputStream读取数据。
下面的代码。
doPost
req.setCharacterEncoding("UTF-8");
BufferedReader r = new BufferedReader(new InputStreamReader(req.getInputStream()));
String line;
while ((line = r.readLine()) != null) {
System.out.println(line);
}
BufferedReader r = new BufferedReader(
new InputStreamReader(req.getInputStream(), StandardCharsets.UTF_8));
使用 getInputStream 可以得到没有编码的二进制数据。因此,二进制到文本的桥接 class InputStreamReader 需要正确的编码。否则它使用系统默认值 System.getProperty("file.encoding")
.
当我在服务器端不使用 setCharacterEncoding 将 post 发送到我的页面时,我得到 фыв
。使用 setCharacterEncoding(UTF-8)
,我得到 ыва
。如何更正 POST 查询的更改字符编码?
P.S.: 我从ServletInputStream读取数据。
下面的代码。
doPost
req.setCharacterEncoding("UTF-8");
BufferedReader r = new BufferedReader(new InputStreamReader(req.getInputStream()));
String line;
while ((line = r.readLine()) != null) {
System.out.println(line);
}
BufferedReader r = new BufferedReader(
new InputStreamReader(req.getInputStream(), StandardCharsets.UTF_8));
使用 getInputStream 可以得到没有编码的二进制数据。因此,二进制到文本的桥接 class InputStreamReader 需要正确的编码。否则它使用系统默认值 System.getProperty("file.encoding")
.