Java 如何更正post查询的编码更改?
当我在服务器端不使用setCharacterEncoding发送帖子到我的页面时,我会得到Java 如何更正post查询的编码更改?,java,tomcat,post,encoding,character-encoding,Java,Tomcat,Post,Encoding,Character Encoding,当我在服务器端不使用setCharacterEncoding发送帖子到我的页面时,我会得到ССèèП。通过setCharacterEncoding(UTF-8),我得到了Сèèèèèèèè°。如何正确更改POST查询的字符编码 注意:我从ServletInputStream读取数据 代码如下 doPost req.setCharacterEncoding("UTF-8"); BufferedReader r = new BufferedReader(new InputStreamReader(r
ССèèП
。通过setCharacterEncoding(UTF-8)
,我得到了Сèèèèèèèè°
。如何正确更改POST查询的字符编码
注意:我从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);
}
使用getInputStream,您可以获得不带编码的二进制数据。因此,二进制到文本桥接类InputStreamReader需要正确的编码。否则,它使用系统默认的
system.getProperty(“file.encoding”)
工作。谢谢。但如果我直接从流中读取?使用ServletInputStream.readLine
函数。然后String line=新字符串(字节、关闭、结果、标准字符集.UTF_8)
。
BufferedReader r = new BufferedReader(
new InputStreamReader(req.getInputStream(), StandardCharsets.UTF_8));