请教java和js编码问题
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
PrintWriter out = response.getWriter();
byte record[] = null;
String r = "";
try{
dos.writeInt(2);//记录个数
dos.writeInt(0);//任务类型
dos.writeUTF("霸三国");//名称
dos.writeInt(1);// 对话次数、物品件数、杀怪个数
dos.writeInt(2);//任务类型
dos.writeUTF("贞子");//名称
dos.writeInt(1);// 对话次数、物品件数、杀怪个数
record = bos.toByteArray();
r = Arrays.toString(record);
System.out.println(r);
//打印出来的数组:
//[0, 0, 0, 2, 0, 0, 0, 0, 0, 9, -23, -100, -72, -28, -72, -119, -27, -101, -67, 0, 0, 0, 1, 0, 0, 0, 2, 0, 6, -24, -76, -98, -27, -83, -112, 0, 0, 0, 1]
request.setAttribute("bytearray", r);
request.getRequestDispatcher("/ba.jsp").forward(request, response);
}catch (Exception e){
e.printStackTrace();
}finally {
dos.close();
bos.close();
}
java utf8 unicode byte js
[解决办法]
你这种情况 建议用json格式来传输数据,json字符串可以用URLEncode直接编码,js支持对url解码的。
如果按照你上面所写,字节流是无法用js解码,本来前台的浏览器就是一个dom模型,也就是只支持文档类型,这种字节流只有底层才能识别。