V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
51300520
V2EX  ›  问与答

html 有没办法在文本中嵌入二进制数据?

  •  
  •   51300520 · 2019-08-19 16:24:24 +08:00 · 1846 次点击
    这是一个创建于 1905 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是不是只有 base64 处理再以文本传输这种方式?

    13 条回复    2019-08-20 09:08:47 +08:00
    cheneydog
        1
    cheneydog  
       2019-08-19 16:27:36 +08:00
    你想干嘛?
    OhYee
        2
    OhYee  
       2019-08-19 16:49:29 +08:00
    把二进制塞到响应的 body 里,或者整一个 websocket 传输都符合你要求把
    Yourshell
        3
    Yourshell  
       2019-08-19 17:55:11 +08:00
    你转换成 010101010 的格式也行啊
    51300520
        4
    51300520  
    OP
       2019-08-19 18:45:43 +08:00
    @OhYee 怎么塞到响应的 body 里,就是要这个效果
    51300520
        5
    51300520  
    OP
       2019-08-19 18:46:34 +08:00
    @cheneydog 有一段文本被压缩过后的二进制,服务端解压消耗太大,想直接发二进制客户端解压
    misaka19000
        6
    misaka19000  
       2019-08-19 18:48:06 +08:00
    当然可以,我之前做过
    51300520
        7
    51300520  
    OP
       2019-08-19 18:48:26 +08:00
    @Yourshell 太耗带宽
    51300520
        8
    51300520  
    OP
       2019-08-19 18:48:48 +08:00
    @misaka19000 怎么实现啊,直接放入文本传输好像不行啊
    misaka19000
        9
    misaka19000  
       2019-08-19 18:52:11 +08:00
    直接 JS 通过 http 请求去拿数据,后台返回二进制[]byte 就行了
    51300520
        10
    51300520  
    OP
       2019-08-19 18:54:41 +08:00
    @misaka19000 哦,你是说 ajax 那个
    OhYee
        11
    OhYee  
       2019-08-19 19:40:07 +08:00
    @51300520
    后端直接把数据写到 body 前端发个请求读一下就行额。

    一般来说后端都可以直接操作 reponse 来实现修改 body 吧,具体看你框架的实现了。

    前端可以用类似这样的方式拿到 body 的二进制数据,当然应该别的框架有更好的方法拿到数据(我不是前端,猜测应该有)
    fetch("https://www.baidu.com").then(data=>data.body.getReader().read().then(d=>console.log(d.value)))
    51300520
        12
    51300520  
    OP
       2019-08-19 20:00:52 +08:00
    @OhYee
    这种只能单独做一次请求,二进制和纯文本不能混一起,不然要出错,只能第一次请求网页文本,第二次 ajax 请求二进制数据
    msg7086
        13
    msg7086  
       2019-08-20 09:08:47 +08:00 via Android
    JS 字符串里放编码过的二进制不行么。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:36 · PVG 22:36 · LAX 06:36 · JFK 09:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.