首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

上传文件获取客户端普通参数有中文时的有关问题

2013-10-31 
上传文件获取客户端普通参数有中文时的问题ServletInputStream sis request.getInputStream()String k

上传文件获取客户端普通参数有中文时的问题


ServletInputStream sis = request.getInputStream();
String k;
if ((k = s.indexOf("name="")) != -1) {
   String fieldName = s.substring(k + 6, s.length() - 3);
   //sis.readLine(b, 0, b.length);
   StringBuilder fieldValue = new StringBuilder(b.length);
   while ((a = sis.readLine(b, 0, b.length)) != -1) {
         s = new String(b, 0, a -2);
         if ((b[0] == 45) && (b[1] == 45) && (b[2] == 45)
              && (b[3] == 45) && (b[4] == 45)) {
              break;
          } else {
              fieldValue.append(s);
          }
    }
    fields.put(fieldName, fieldValue.toString());
}

通过MULTIPART/FORM-DATA上传文件,
有一个问题,当提交的普通字段value中有中文的时候,如果中文字符数是双数,就可以正常显示,如果是单数,那么最后一个字符就会显示成乱码,

比如value="中国人"的时候人字就会显示成乱码,value="中国",那么就会正常显示

怎么整,谢谢....
[解决办法]
你用的是什么字符集呀?UTF8?我觉得可能是截取的时候出了问题吧,你用的是byte[]数组进行操作的,不同字符集相同的String,getBytes[]的到的byte[]长度不一样。

热点排行