1

我有一个用 latin1_swedish_ci 编码的数据库。我想知道插入&lt;<在数据库中有什么区别?

4

3 回答 3

5

它不是不同的字符编码。这&lt;只是一种 XML 转义形式,<通常用于防止它被解释为 XML(或 HTML)元素的开始。这种预防通常用作XSS 预防的一部分。这通常在用户控制的数据即将内联到 HTML 输出中时应用,而不是当用户控制的输入即将存储在 DB 中时应用。

因此,如果您看到&lt;而不是<在 DB 中,而它应该是 a <,那么它只能意味着某些 XML/HTML 转义逻辑在错误的时刻运行。

也可以看看:

于 2013-05-20T16:13:53.110 回答
2

&lt;是引用字符的HTML字符引用<。不同之处在于&lt;占用四个字符空间,而<只占用一个字符。这都是关于数据库的。

于 2013-05-20T16:14:14.997 回答
1

第一个是 HTML 实体 - 换句话说,<如果你想在 HTML 中输出一个,你会如何转义 a。第二个是文字字符。

通常,您的数据库不应包含采用特定输出格式(在本例中为 HTML/XML)的内容。例如,如果该内容以纯文本格式提供,则您希望显示<,而不是&lt;。因此,您应该存储<在数据库中,并&lt;在呈现 HTML 输出时转义。

于 2013-05-20T16:15:02.367 回答