字符串转义工具

选择文本所用字符串的类型,转义或反转义即按该格式的规则进行。每种格式都注明了它所遵循的规范。您粘贴的内容不会离开浏览器。

免费 在浏览器中运行 核对于2026年11月10日星期二

需要转义的文本,或需要反转义的转义文本。空格和换行保持原样。

操作

文本所用字符串的类型。每种格式都有自己的转义写法。

转义时,把结果放入该格式的引号中。反转义时,始终删除包围整段文本的引号。

结果

结果
已转义的字符

此工具在您的浏览器中运行。您输入的内容不会发送给我们。

使用方法

  1. 将文本粘贴到“文本”中,并在“操作”中选择“转义”或“反转义”。
  2. 在“格式”中选择字符串的类型,例如“JSON 字符串”或“SQL 字符串常量”。
  3. 对于带引号的格式,保持勾选“添加引号”,即可得到带引号的文本;取消勾选,则只得到内容部分。
  4. 查看“结果”;转义文本时,还可查看“已转义的字符”表。

转义是什么

程序、文件或查询中的字符串只能直接容纳部分字符。转义会把其他字符,以及会结束字符串的字符,替换为一种序列,该格式读取时会还原为同一字符。每种格式都有自己的序列,因此同一字符可以有多种写法;反转义则把这些序列读回为字符。

  • JSON 和 JavaScript 使用反斜杠,因此换行写作 \n。
  • HTML 和 XML 使用和号、名称和分号,因此和号写作 &。
  • CSV 和 SQL 会把结束字段或字符串的那个字符重复一次,因此 SQL 中的单引号写作两个单引号。

各种格式的规则

  • JSON 字符串:RFC 8259 第7节。引号、反斜杠和控制字符要转义,并读取由四位十六进制数字组成的 \u 转义。
  • JavaScript 字符串:ECMA-262 的字符串字面量。在双引号字符串中,只需转义双引号,并拒绝旧式八进制转义。
  • HTML 属性值:五个字符 & < > " ' 写作引用。本页面不认识的名称,例如 &eacute;,保持原样。
  • XML 文本:同样的五个字符,撇号写作 &apos;。XML 1.0 没有任何方式写出控制字符,因此这类字符会被拒绝。
  • CSV 字段:RFC 4180。含有逗号、引号或换行的字段要用双引号括起,其中的每个引号都要重复一次。
  • SQL 字符串常量:PostgreSQL 手册。单引号要重复一次。在标准 SQL 中,反斜杠没有特殊含义。
  • 正则表达式:按 ECMA-262 列出的语法字符,在每个语法字符前加反斜杠。反转义时保留 \d 之类的转义,因为它们表示字符类。
  • C# 或 Java 字符串:两种语言都读取的转义。换行写作 \n,其他控制字符写作 \u 转义。
  • Shell 单引号文本:POSIX。单引号之内没有任何字符具有特殊含义,因此单引号写作 '\''(结束引号、转义它、再重新开始)。

容易出错之处

  • 对一段文本转义两次,会使反斜杠加倍,因此结果中会出现 \\n,而第一次转义的结果是 \n。
  • 放在 JavaScript 文件中的 JSON 字符串,在该文件中仍需要它自己的转义;应用程序中的 SQL 字符串,可能也需要所用语言的转义。
  • 表情符号的一半无法用以上任何格式写出,因此页面会拒绝它。请重新输入该字符。

计算示例:含有引号、换行和反斜杠的 JSON 字符串

默认文本为 他说"你好"&离开了。,接着是一个换行,然后是 路径:C:\temp,其中含有两个引号、一个换行和一个反斜杠。以 JSON 字符串并带上引号的形式转义后,结果为 "他说\"你好\"&离开了。\n路径:C:\\temp"。表格统计的是以其他写法出现的字符。

字符 写作 次数
" \" 2
U+000A \n 1
\ \\ 1

常见问题

文本会被发送到服务器吗?

不会。转义和反转义都在您的浏览器中进行,因此含有密码或令牌的文本只留在您的设备上。

为什么反转义 JSON 时会拒绝 \x41?

JSON 没有 \x 转义,它只有 \u 加四位十六进制数字,因此字母 A 写作 \u0041。JavaScript 字符串确实接受 \x41,所以这两种格式分开列出。

为什么 JavaScript 字符串中不转义单引号?

双引号字符串只需转义双引号。选择了“添加引号”时,结果会被双引号括起,因此单引号在那里只是普通字符。

为什么 SQL 中不转义反斜杠?

标准 SQL 不把字符串常量中的反斜杠视为特殊字符。一些数据库,例如默认设置下的 MySQL,则会这样处理,因此在把反斜杠写入 SQL 字符串之前,请先查看所用数据库的规则。

“添加引号”会改变什么?

开启时,转义后的文本会被该格式的引号括起,例如 JSON 用双引号、SQL 用单引号。关闭时只得到内容,例如当它要放进一个已经带有引号的字符串中时。

我的文本中没有引号,为什么 CSV 结果带有引号?

RFC 4180 要求:字段含有逗号、引号或换行时,必须用引号括起。普通字段则原样写出,不加引号。

为什么 XML 会拒绝控制字符?

XML 1.0 完全不允许 U+0001之类的字符,即使以引用的形式也不行,因此页面无法写出它们。请先把它们从文本中删除。

资料来源

数据和文字最近核对于2026年11月10日星期二。

我们使用必要的 Cookie 来运行网站。经您同意后,Google 还会使用广告 Cookie 展示个性化广告。如果您拒绝,仍会看到广告,但广告不会个性化。