请教java和js编码问题

lsx1984 2013-06-29 10:10:55


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();
}

转发到页面需要用js解码还原成字符串,请问该怎么做呢?在下才疏学浅,坐等高人指点迷津。分不多了,见谅!
...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsx1984 2013-07-02
  • 打赏
  • 举报
回复
唉,居然没人知道解决方案,郁闷。
侠龙 2013-06-30
  • 打赏
  • 举报
回复
说起这个为什么是负数就比较复杂了,这些你看似正负数到计算机底层实际上都是0和1,汉字是根据这些0和1的编码,在屏幕上打印出一个个小点,然后再视觉形成一个汉字。所以正负数只是一种表示汉字形状的一种结构而已。不是正真意义上的正负数。
lsx1984 2013-06-29
  • 打赏
  • 举报
回复
引用 楼主 lsx1984 的回复:


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();
        }
转发到页面需要用js解码还原成字符串,请问该怎么做呢?在下才疏学浅,坐等高人指点迷津。分不多了,见谅!
是的,尤其不理解为什么汉字写如byte数组后居然是负数。
侠龙 2013-06-29
  • 打赏
  • 举报
回复
你这种情况 建议用json格式来传输数据,json字符串可以用URLEncode直接编码,js支持对url解码的。 如果按照你上面所写,字节流是无法用js解码,本来前台的浏览器就是一个dom模型,也就是只支持文档类型,这种字节流只有底层才能识别。
oh_Maxy 2013-06-29
  • 打赏
  • 举报
回复
LZ是想将byte数组再还原成字符么?

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧