后端传给我的 markdown 字符串,里面包含\n 这样的换行符,前端接口接收到后,\n 变成了\\n - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
csdoker
V2EX    问与答

后端传给我的 markdown 字符串,里面包含\n 这样的换行符,前端接口接收到后,\n 变成了\\n

  •  
  •   csdoker 2021-08-10 14:53:21 +08:00 3283 次点击
    这是一个创建于 1524 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我目前的处理方法是用正则 replace(/\\n/g, '\n')把\\n 替换为\n
    还有更好的处理方法吗?出现这个问题的原因是不是因为字符串被自动转义了?
    25 条回复    2021-08-11 12:33:53 +08:00
    ipwx
        1
    ipwx  
       2021-08-10 15:10:57 +08:00
    这你得问你的后端同学。八成是框架有什么东西。
    PeakFish
        2
    PeakFish  
       2021-08-10 15:14:51 +08:00
    我也很纳闷这个东西, 为什么会多出来 一个斜杠 有的 双引号前面也会
    micean
        3
    micean  
       2021-08-10 15:18:25 +08:00
    最好的处理办法是让后端改了这个 bug
    csdoker
        4
    csdoker  
    OP
       2021-08-10 15:37:04 +08:00
    @micean 后端没有做任何处理。。就是把字符串通过接口里的字段给我,但是传到前端后,字符串里的\n 换行符就变成了\\n
    b821025551b
        5
    b821025551b  
       2021-08-10 15:42:05 +08:00
    后端给的 response header 声明是 json 还是 text ?
    rationa1cuzz
        6
    rationa1cuzz  
       2021-08-10 15:56:04 +08:00
    大概率是框架或者语言或者系统的问题,让后端处理吧。
    Vegetable
        7
    Vegetable  
       2021-08-10 15:56:51 +08:00
    先让后端检查数据库里存的是什么吧
    vistey
        8
    vistey  
       2021-08-10 16:25:50 +08:00 via Android
    查查数据库里吧
    csdoker
        9
    csdoker  
    OP
       2021-08-10 16:44:47 +08:00
    @b821025551b Content-Type: application/json; charset=
    csdoker
        10
    csdoker  
    OP
       2021-08-10 16:45:40 +08:00
    @rationa1cuzz 后端用的 python
    csdoker
        11
    csdoker  
    OP
       2021-08-10 16:45:54 +08:00
    @Vegetable 数据库里存的也是\n
    Vegetable
        12
    Vegetable  
       2021-08-10 16:54:29 +08:00   1
    @csdoker 数据库里也是\n 吗,保准吗?如 navicat 之类的工具或者 mysql 命令行,varchar text 之类的类型,包含\n 都看不到\n,而是真的会换行。如果你在数据库里看到了\n,并且字段两端没有"",那是存的时候就错了。
    ysc3839
        13
    ysc3839  
       2021-08-10 17:02:49 +08:00 via Android
    前端看网络请求返回的数据是啥。
    1010011010
        14
    1010011010  
       2021-08-10 17:05:37 +08:00
    @Vegetable #12 +1 如果能看到\n 实际就是保存了\\n
    cyrivlclth
        15
    cyrivlclth  
       2021-08-10 17:17:19 +08:00
    @csdoker 那数据库那层就存错了吧,\n 应该是看不到直接提行的。
    SZP1206
        16
    SZP1206  
       2021-08-10 17:18:17 +08:00 via Android
    楼上正解 \被转义了
    csdoker
        17
    csdoker  
    OP
       2021-08-10 17:19:00 +08:00
    @Vegetable 那应该怎么处理呢
    Hstar
        18
    Hstar  
       2021-08-10 17:19:17 +08:00
    \\n 是 \n 换行符的 json 编码,说明后端发给你的是一个 json 字符串,你是不是漏了 json 解码的过程?
    KagurazakaNyaa
        19
    KagurazakaNyaa  
       2021-08-10 17:22:56 +08:00
    干脆让他给你 base64,你解一步吧
    rationa1cuzz
        20
    rationa1cuzz  
       2021-08-10 17:28:54 +08:00
    @Vegetable +1 如果是存的是\n navicat 是看不到\n,但是接口返回字段会有\n 的,刚试了一下 python django mysql5.7,字段为 text
    csdoker
        21
    csdoker  
    OP
       2021-08-10 17:30:03 +08:00
    @Hstar 我是直接从接口返回的字段里取的,不需要解码吧。。
    Cielsky
        22
    Cielsky  
       2021-08-10 17:48:12 +08:00
    这是给转义了吧
    sunny352787
        23
    sunny352787  
       2021-08-10 18:54:35 +08:00
    @Hstar 应该就是这个原因
    csdoker
        24
    csdoker  
    OP
       2021-08-11 09:51:27 +08:00
    @sunny352787 没看懂。。给我发的就是字符串。。没有编码过的 我怎么解码
    liuidetmks
        25
    liuidetmks  
       2021-08-11 12:33:53 +08:00
    干脆 urlsafe base64 一次,把数据一次性打包发个服务器
    总能遇到转义编码的问题,烦死了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3581 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 00:08 PVG 08:08 LAX 17:08 JFK 20:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86