DevToolPal
简

字符串转义/反转义

为 JSON、JavaScript、Java/C#、Python、SQL、CSV、XML、正则表达式和 Shell 命令转义或反转义字符串。

本地处理,不上传

选项

模式

输入

0 字符 · 0 B

输出

0 字符 · 0 B

功能介绍

字符串转义工具把文本转换成可以放进字符串字面量的形式,也能把转义后的字符串还原成普通文本。支持九种目标:JSON、JavaScript、Java 和 C#、Python、SQL 字符串、CSV 字段、XML 文本和属性、正则表达式以及 POSIX Shell 命令。每种都按该语言自己的规则处理,结果可以直接粘贴进代码而不会产生语法错误。

常见用途:把多行提示语或 Windows 路径写进 JSON 配置文件,把一段 HTML 嵌入 JavaScript 字符串,给带空格的文件名加上 Shell 引号,或者把 price (USD) 这样的字面搜索词变成能精确匹配它的正则表达式。

使用方法

  1. 选择「转义」或「反转义」。
  2. 选择语言或格式。
  3. 把文本粘贴到输入框,或点「示例」,结果随输入实时更新。
  4. 复制输出,或点「作为输入」反向转换,确认能原样还原。

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 这类未知转义原样保留。

› 我的文本会上传吗?

不会。转义和反转义都在浏览器里完成,不会发送到服务器。