JAVA是支持多种编码方式的,如果没有指明传送的字符是何种编码,JSP会按默认的ISO8859-1方式,由其是表单提交以及从数据库中存取的时候特别常见。你需要根据情况重新转换一下,可以用 String(str.getBytes(),"GB2312"),
也可以用下面的代码段。
int n = srouceString.length();
byte temp[] = new byte(n);
for(int i = 0 ;i<n;i++)temp[i]=sourceString[i];
String result = new String(temp);
也可以用下面的代码段。
int n = srouceString.length();
byte temp[] = new byte(n);
for(int i = 0 ;i<n;i++)temp[i]=sourceString[i];
String result = new String(temp);
而通过request.getParameter()方法得到的,和从数据库中读出的则显示乱码
这时候则需要进行内码转换
String name=request.getParameter("name");
out.println(name);
结果输出的????,请不吝赐教。
或者response.setContentType("text/html; charset=UTF-8");
charset前面留一个空格