首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript 字符串中的反斜槓轉義:JSON 傳輸路徑需雙重轉義或使用正斜槓

     編輯:程式設計疑難解答

現象

後端返回 JSON 包含路徑 E:\Users\xxx.txt,前端 JS 讀取後變為 E:Usersxxx.txt (反斜槓丟失)。

原因

JSON 字符串中 \ 是轉義字符。後端序列化時若未正確轉義,傳輸的 JSON 文本實際為 "E:\Users\xxx.txt" (單反斜槓),JS 解析時 \U、\x 被視為轉義序列並丟失。

解決方案

  1. 後端雙重轉義:Java 中 path.replace("\\", "\\\\"),生成 "E:\\\\Users\\\\xxx.txt",JS 解析後得到單反斜槓。
  2. 統一使用正斜槓:後端返回 E:/Users/xxx.txt,Windows API 同樣支持,避免轉義麻煩。
  3. 前端手動還原:jsonStr.replace(/\\\\/g, '\\') (不推薦,治標不治本)。

關鍵點

JS 本身**不會自動去除反斜槓**,問題出在 JSON 序列化/反序列化環節的轉義處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved