tmp是一个byte(字节)数组,如:['a','b','c'...],tmp[0]是去byte中的第一个,运算符&表示按位运算‘且’,
就是前后值的二进制相同位有0取0,否则取1,如:2&3就是运算二进制的10&11,结果是二进制10,表示十进制就是2,
所以tmp[0]&0xff返回的是tmp[0]这个字节的ASCII码,如A对应65,a对应97,new String(tmp,1,nlen,"UTF8")
就是将字节数组tmp从索引的第1位取nlen长度后组成字符串,切组成后的字符串按照utf8的字符集编码
相关文章
- String s1="AB"和String s2=new String("AB")的区别
- String s=new String(s1.getBytes("ISO-8859-1"),"GB2312")问题
- 当提交的表单类型为multipart/form-data时 后台的dopost则不能使用 setCharset来进行解码了 需要单独对字段使用 原始的new String(req.name("ISO-8859-1"),"utf-8")形式解码了
- 在JSP中,使用get提交方式出现乱码时,为什么要使用new String(s.getBytes("iso-8859-1"),"utf-8");?
- int ic=new String("a").getBytes().length; 为什么得1,java不是unicode的吗,应该得2吧?