我在用这个方法读出页面输入框繁体中文时是乱码 我的页面是utf-8的编码,大家快看看怎样解决
public void setSourceFile(HttpServletRequest httpservletrequest)
throws IOException
{
sis = httpservletrequest.getInputStream();
int i = 0;
boolean flag = false;
String s = "";
while((i = sis.readLine(b, 0, b.length)) != -1)
{
String s1 = new String(b, 0, i);
int j;
if((j = s1.indexOf("filename=\"")) != -1)
{
s1 = s1.substring(j + 10);
j = s1.indexOf("\"");
s1 = s1.substring(0, j);
sourceFile[count] = s1;
j = s1.lastIndexOf(".");
suffix[count] = s1.substring(j + 1);
if(canTransfer(count))
transferFile(count);
count++;
} else
if((j = s1.indexOf("Content-Disposition: form-data; name=\"")) != -1)
{
String s3 = s1.substring(j + 38, s1.length() - 3);
sis.readLine(b, 0, b.length);
StringBuffer stringbuffer = new StringBuffer(b.length);
boolean flag1 = false;
while((i = sis.readLine(b, 0, b.length)) != -1)
{
String s2 = new String(b, 0, i - 2);
if(flag1)
s2 = "\n" + s2;
else
flag1 = true;
if(b[0] == 45 && b[1] == 45 && b[10] == 45 && b[15] == 45 && b[28] == 45 && b[29] != 45 && b[30] != 45)
break;
stringbuffer.append(s2);
}
fields.put(s3, stringbuffer.toString());
System.out.println(s3+" = "+stringbuffer.toString());
}
if(!successful)
break;
}
}
public void setSourceFile(HttpServletRequest httpservletrequest)
throws IOException
{
sis = httpservletrequest.getInputStream();
int i = 0;
boolean flag = false;
String s = "";
while((i = sis.readLine(b, 0, b.length)) != -1)
{
String s1 = new String(b, 0, i);
int j;
if((j = s1.indexOf("filename=\"")) != -1)
{
s1 = s1.substring(j + 10);
j = s1.indexOf("\"");
s1 = s1.substring(0, j);
sourceFile[count] = s1;
j = s1.lastIndexOf(".");
suffix[count] = s1.substring(j + 1);
if(canTransfer(count))
transferFile(count);
count++;
} else
if((j = s1.indexOf("Content-Disposition: form-data; name=\"")) != -1)
{
String s3 = s1.substring(j + 38, s1.length() - 3);
sis.readLine(b, 0, b.length);
StringBuffer stringbuffer = new StringBuffer(b.length);
boolean flag1 = false;
while((i = sis.readLine(b, 0, b.length)) != -1)
{
String s2 = new String(b, 0, i - 2);
if(flag1)
s2 = "\n" + s2;
else
flag1 = true;
if(b[0] == 45 && b[1] == 45 && b[10] == 45 && b[15] == 45 && b[28] == 45 && b[29] != 45 && b[30] != 45)
break;
stringbuffer.append(s2);
}
fields.put(s3, stringbuffer.toString());
System.out.println(s3+" = "+stringbuffer.toString());
}
if(!successful)
break;
}
}
另外,request,response编码设置一致
我用 httpservletrequest.setCharacterEncoding("utf-8");这个可是还是不行
<%@ page contentType="text/html; charset=utf-8" language="java"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
request.setCharacterEncoding("ISO-8859-1");
PrintWriter out = response.getWriter();
out.println();试下这个