字符串转义(String Escaping)

字符串转义(String Escaping) 是指在编程或数据处理中,对字符串中的特殊字符进行标记或替换,以避免它们被解释为语法结构的一部分,而是作为普通字符处理。


🎯 为什么需要字符串转义?

许多字符在编程语言、数据库或标记语言中有特殊含义。例如:

  • 单引号 ' 或双引号 " 用于界定字符串;
  • 反斜杠 \ 常用于引入转义序列;
  • 换行符、制表符等不可见字符也需要特殊表示。

如果不转义,程序可能会:

  • 报语法错误;
  • 截断字符串;
  • 引发安全漏洞(如 SQL 注入)。

🔧 常见转义方式(按环境)

1. SQL Server(T-SQL)

  • 使用 两个单引号 '' 表示一个单引号。
  • 示例:SELECT 'It''s a sunny day'; -- 输出:It's a sunny day

注意:SQL Server 不使用反斜杠 \ 转义(除非启用特定选项),这是和其他语言的重要区别。


2. 大多数编程语言(如 Python、JavaScript、C#)

  • 使用 反斜杠 \ 作为转义字符。
  • 常见转义序列:
    • \'\":单/双引号
    • \\:反斜杠本身
    • \n:换行
    • \t:制表符
  • 示例(Python): s = "He said: \"Hello!\"" t = 'It\'s working'

3. JSON

  • 必须用双引号包围字符串;
  • 内部的双引号和控制字符需用 \ 转义。
  • 示例:{ "message": "She said: \"Hi!\"\nAnd left." }

4. HTML / XML

  • 使用 实体引用(Entity References)
    • &lt; 表示 <
    • &gt; 表示 >
    • &amp; 表示 &
    • &quot; 表示 "
  • 示例:<p>Price: &quot;$10&quot; &lt; $20</p>

⚠️ 安全意义:防止注入攻击

未转义的用户输入是安全漏洞的根源!

  • ❌ 危险(SQL 注入):-- 用户输入:'; DROP TABLE Users; -- SELECT * FROM Users WHERE name = ''; DROP TABLE Users; --';
  • ✅ 安全做法:
    • 使用参数化查询(推荐);
    • 或正确转义输入(如将 ''')。

✅ 总结

场景转义字符示例(表示 It's OK
SQL Server'''It''s OK'
Python/JS/C#\"It\'s OK"'It\'s OK'
JSON\"It\'s OK"(实际应避免单引号,标准用双引号)
HTML&...;It&#39;s OKIt&apos;s OK

💡 记住:转义是为了让“特殊字符”变成“普通字符”,确保字符串被正确解析和安全使用。

© 版权声明
THE END
喜欢就点赞吧
点赞7 分享