我有一个用 latin1_swedish_ci 编码的数据库。我想知道插入<
和<
在数据库中有什么区别?
问问题
701 次
3 回答
5
它不是不同的字符编码。这<
只是一种 XML 转义形式,<
通常用于防止它被解释为 XML(或 HTML)元素的开始。这种预防通常用作XSS 预防的一部分。这通常在用户控制的数据即将内联到 HTML 输出中时应用,而不是当用户控制的输入即将存储在 DB 中时应用。
因此,如果您看到<
而不是<
在 DB 中,而它应该是 a <
,那么它只能意味着某些 XML/HTML 转义逻辑在错误的时刻运行。
也可以看看:
于 2013-05-20T16:13:53.110 回答
2
<
是引用字符的HTML字符引用<
。不同之处在于<
占用四个字符空间,而<
只占用一个字符。这都是关于数据库的。
于 2013-05-20T16:14:14.997 回答
1
第一个是 HTML 实体 - 换句话说,<
如果你想在 HTML 中输出一个,你会如何转义 a。第二个是文字字符。
通常,您的数据库不应包含采用特定输出格式(在本例中为 HTML/XML)的内容。例如,如果该内容以纯文本格式提供,则您希望显示<
,而不是<
。因此,您应该存储<
在数据库中,并<
在呈现 HTML 输出时转义。
于 2013-05-20T16:15:02.367 回答