字符串转义
按 JSON / Java / JS / SQL / C / Shell 规则转义或反转义字符串。
目标语言
模式
原始文本
0 chars · 1 lines
转义结果
0 chars · 1 lines
使用说明
用途
字符串转义 / 反转义在线工具,处理 JSON / JavaScript / Java / Python / SQL / HTML / Shell / Regex 等多种上下文的转义字符。把含特殊字符(换行、引号、反斜杠、Tab、Unicode 等)的字符串转换为对应语言的转义形式,反向把转义字符串还原为可读文本。常用于复制日志 / 错误信息到代码字符串、把 JSON 内嵌到 JSON / SQL 里、调试转义乱码、生成跨语言代码的字符串字面量等场景。所有处理在浏览器本地完成。
操作步骤
- 左侧粘贴原文(含换行 / 引号 / 特殊字符)
- 选目标语言:JSON / JS / Java / Python / SQL / HTML / Shell / Regex
- 右侧输出对应语言的转义字符串
- 反向:粘贴已转义字符串,工具自动反转义为可读
- JSON 转义:\\n \\t \\" \\\\ \\u00XX
- SQL 转义:单引号变两个单引号、双引号变 \\"、反斜杠变 \\\\
- Shell 转义:用单引号包裹或用 \\$ \\` \\" 等
- Regex 转义:. * + ? ( ) [ ] 等元字符前加反斜杠
常见问题
- JSON 和 JavaScript 字符串转义有什么区别?
- **核心字符**(\n \t \" \\)相同。**差异**:1) JSON 不支持单引号字符串,JS 支持;2) JSON 不允许尾随空格 / 注释,JS 允许;3) JS 支持 \u{XXXX} 和 \xXX 转义,JSON 只支持 \uXXXX;4) JS 支持模板字符串里的 `${}`,JSON 不支持。**实际**:JSON 转义是 JS 字符串转义的严格子集。
- SQL 字符串怎么防注入?
- SQL 转义不可靠(不同数据库规则不同),**正确做法用参数化查询 / 预编译语句**:`SELECT * FROM users WHERE name = ?` + 参数。**手动转义场景**:单引号变两个单引号(''),反斜杠按数据库设置(MySQL 默认要转义反斜杠,PostgreSQL 默认不需要)。本工具的 SQL 模式按 MySQL 标准处理。
- Shell 单引号和双引号转义不一样?
- **单引号 '**: 内部所有字符字面化,**不能包含单引号**(要用 '"'"' 拼接)。**双引号 \"**: 仍解析 $变量、`命令`、\转义。**最佳实践**:固定字符串用单引号最安全;要插入变量用双引号 + 仔细转义;复杂字符串用 heredoc:cat <<EOF ... EOF。
- 正则元字符要不要全转义?
- **14 个元字符必须转义**: . * + ? ^ $ ( ) [ ] { } | \ /(最后那个 / 仅在 JS 字面正则字符串需要)。**字符类内 [ ]**: 大部分元字符在 [ ] 内失效,但 ] ^ - 仍要转义(位置影响:^ 在开头是否定,- 在中间是范围)。本工具的 regex 模式按 PCRE 标准转义。
- Unicode 字符要不要转义?
- **JSON / JS**: 推荐保留 UTF-8 原字符(中文 / Emoji 直接写),更可读。需要转义时 \uXXXX 形式(BMP 内)或 \u{XXXXX} 形式(JS ES2015+ 支持超 BMP)。**遗留系统对接**: 老 PHP / Java 可能要求纯 ASCII,用 \u 转义所有非 ASCII。本工具的 ASCII-only 模式生成全转义结果。
应用场景
- 日志 → 代码字符串:把含换行的错误日志贴到单元测试里
- JSON 嵌套:把 JSON 字符串作为另一份 JSON 的字段值
- SQL 生成:把含引号的用户输入安全嵌入 SQL(虽然推荐参数化)
- Shell 脚本:生成含路径 / 引号的命令字符串
- 正则模板:动态生成正则时把用户输入转义为字面字符
适用场景
日志转代码、JSON 嵌套、SQL 生成、Shell 脚本、动态正则。开发者多语言转义高频场景。多语言上下文支持、双向转义、Unicode 模式可选是关键差异点。