功能介紹
字串跳脫工具把文字轉換成可以放進字串常值的形式,也能把跳脫後的字串還原成一般文字。支援九種目標:JSON、JavaScript、Java 和 C#、Python、SQL 字串、CSV 欄位、XML 文字和屬性、正規表示式以及 POSIX Shell 指令。每一種都依照該語言自己的規則處理,結果可以直接貼進程式碼而不會產生語法錯誤。
常見用途:把多行訊息或 Windows 路徑寫進 JSON 設定檔,把一段 HTML 嵌入 JavaScript 字串,替含空格的檔名加上 Shell 引號,或把 price (USD) 這類字面搜尋詞變成能精確比對的正規表示式。
使用方法
- 選擇「跳脫」或「反跳脫」。
- 選擇語言或格式。
- 把文字貼到輸入框,或按「範例」,結果會隨輸入即時更新。
- 複製輸出,或按「作為輸入」反向轉換,確認能原樣還原。
JSON、JavaScript、Java/C# 和 Python 還可以把所有非 ASCII 字元也跳脫,得到純 ASCII 字串,在任何檔案編碼下都不會亂碼。
範例
同一行文字依不同目標跳脫的結果:
Input: He said "hi" in C:\Temp
JSON: He said \"hi\" in C:\\Temp
SQL: He said "hi" in C:\Temp (only ' is doubled)
Regex: He said "hi" in C:\\Temp
Shell: 'He said "hi" in C:\Temp'
各格式的規則
- JSON:跳脫引號、反斜線和控制字元,與
JSON.stringify完全一致。 - JavaScript:另外跳脫單引號、反引號、垂直定位字元以及行分隔字元 U+2028、U+2029。
- Java / C#:反斜線跳脫和
\uXXXX;反跳脫時也接受 Java 的八進位跳脫和 C# 的\x、\U跳脫。 - Python:反斜線跳脫,支援
\x、\u、\U;未知跳脫保持原樣。 - SQL:把單引號加倍,符合標準 SQL 字串常值。
- CSV:值含逗號、引號、換行或前後空格時,用雙引號包住並把內部引號加倍。
- XML:取代五個預先定義的實體;反跳脫時也解碼數字字元參照。
- 正規表示式:在每個有特殊意義的字元前加反斜線,讓模式依字面比對文字。
- Shell:用單引號包住(POSIX Shell 中單引號內不做任何展開),內部的單引號寫成
'\''。
常見問題
› 什麼是字串跳脫?
有些字元在字串常值裡有特殊意義,例如結束字串的引號或換行字元。跳脫就是把它們換成安全的寫法(通常是反斜線加一個字母),讓字串放進原始碼、查詢或檔案時不會出錯。
› 貼上時要包含字串兩側的引號嗎?
不用,只貼內容。跳脫結果就是程式碼中兩個引號之間的部分。CSV 和 Shell 是替整個值加引號,需要時工具會自動加上外層引號。
› SQL 跳脫能防止 SQL 注入嗎?
把單引號加倍可以得到合法的字串常值,手寫查詢或準備遷移腳本時很實用。但在應用程式碼中,務必使用參數化查詢或預備陳述式,而不是拼接 SQL 字串。
› 反跳脫為什麼提示未知的跳脫序列?
每種語言支援的跳脫不同。例如 JSON 沒有 \x 和 \0,工具會指出所選語言不接受的第一個序列位置。Python 和它的直譯器一樣,會把 \d 這類未知跳脫原樣保留。
› 我的文字會上傳嗎?
不會。跳脫和反跳脫都在瀏覽器中完成,不會傳送到伺服器。