编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 编码解码 / 反斜杠转义

反斜杠转义

代码字符串转义/反转义。

输入
结果

这个工具能做什么

这个工具做两件互为逆向的事:把一段普通文本转成能直接嵌进源码的字符串字面量(转义),或者把已经转义过的字符串还原回原始文本(反转义)。日常写代码时经常要把多行的 SQLJSON、HTML 片段、日志样本或一段提示词塞进 Java、Go、C、JavaScript 的字符串常量里,手工去数引号、把换行改成 \n、给每个反斜杠再补一个反斜杠,既枯燥又极易出错,漏一个引号整段就编译不过。把文本粘进来一键完成反斜杠转义,或者反过来把源码里抠出来的转义字符串还原成人能读的原文,省掉的正是这类机械且易错的字符处理。整个过程在浏览器本地完成,不上传。

工作方式其实是一次逐字符的扫描与替换。做字符串转义时,工具遍历每个字符,遇到需要特殊处理的就替换成对应的转义序列:换行转义为 \n、回车为 \r、制表符为 \t、反斜杠本身因为是转义的引导符所以要写成 \\,包裹字符串用的引号(双引号 \" 或单引号 \')也要加反斜杠。反转义则是相反的状态机:扫描到反斜杠就读取紧跟的下一个字符,把 \n、\t、\\ 等还原成它们代表的真实字符。这套规则并不改变文本的字符集,UTF-8 编码的中文和 emoji 原样保留,转义只是让文本在引号内部合法、不会提前截断字符串或被误解析。C、Java、JavaScript、Python、JSON 这几类语言的字符串字面量共享了 \n、\r、\t、\\、\" 这个公共子集,所以代码字符串转义的结果在它们之间大多通用。

最典型的用法是把成段文本搬进代码。比如你有一条格式化好的多行 SQL,直接粘进 Java 源码会因为换行和引号报错,用换行转义把它压成一行带 \n 的字符串字面量,复制进去就能编译运行;再比如把一份 JSON 配置转成转义字符串写进测试用例或常量里,省得手动逐个给引号加反斜杠。反向场景同样常见:从别人的源码、崩溃日志或抓包结果里拷到一串 <、\n、\" 混在一起的转义字符串,肉眼根本读不通,粘进来做一次反转义,立刻变回带真实换行和引号的原文,方便核对内容或复现问题。

需要区分的是,反斜杠转义和 Base64URL 编码不是一回事。后两者是为了让二进制或特殊字符能安全地在 URL、HTTP 传输中流转,会改变数据的表现形式甚至体积;而字符串转义只服务于把文本安全地放进代码的引号里,字符本身和底层字节并没有变。常见的坑是引号方向:如果你的字符串用双引号包裹,就只需转义双引号,用单引号包裹则转义单引号,两种都转有时反而多余。另外反转义时若遇到不完整或不认识的转义序列(比如孤零零一个反斜杠),不同语言的容错行为并不一致,还原前最好确认来源字符串本身是合法的字面量。

反斜杠转义是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“反斜杠转义”、“字符串转义”、“转义字符串”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

反斜杠转义和 Base64、URL 编码有什么区别?
它们目的不同。反斜杠转义是把文本变成能放进代码引号里的字符串字面量,字符和字节都不变;Base64、URL 编码是为了让数据能在传输通道里安全流转,会改变表现形式甚至长度。放进源码用转义,走 URL 或存二进制才用后两者。
转义后为什么一个反斜杠变成了两个(\\)?
因为反斜杠本身是转义序列的引导符,\n、\t 都靠它起头。想在字符串里表示一个字面意义的反斜杠,就必须写成 \\,让编译器知道这是普通反斜杠而不是某个转义的开始。这是正常且必须的结果。
这个工具支持哪些语言的字符串转义?
主要覆盖 C、Java、JavaScript、Python、JSON 等共享的公共转义子集,包括 \n、\r、\t、\\、\"、\' 等。这些常见序列在上述语言间大多通用,但个别语言有自己特有的写法,跨语言使用时建议核对目标语言的字符串规范。
单引号和双引号都需要转义吗?
取决于你用哪种引号包裹字符串。用双引号包裹就只需转义字符串内部的双引号,用单引号包裹则转义单引号,另一种引号可以原样保留。两种都转义通常没必要,也不会更安全。
粘进来的文本会被上传到服务器吗?
不会,转义和反转义都在你的浏览器本地用 JavaScript 完成,文本不发往任何服务器。因此处理接口密钥、内部 SQL、日志片段这类敏感内容也不必担心外泄。

相关工具

查看全部「编码解码」工具 →