字符串转义(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):
<表示<>表示>&表示&"表示"
- 示例:
<p>Price: "$10" < $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's OK 或 It's OK |
💡 记住:转义是为了让“特殊字符”变成“普通字符”,确保字符串被正确解析和安全使用。
© 版权声明
THE END















