1

如果我在将所有字符串写入数据库之前对所有字符串使用 htmlEncode 方法,这是否会消除将字符串数据存储为 nvarchar 数据类型的需要?

IE。varchar 数据类型中不存在的所有字符是否都具有可以存储在 varchar 数据类型中的编码值?

4

1 回答 1

2

您的 SQL 服务器很可能对 char 和 varchar 使用 Windows-1252 编码。
如果字符不在 Windows-1252 中,则将其存储为?在 char 和 varchar 中标记。

Windows-1252

通过插入测试

values (nchar(10000)), ('?')

HtmlEncode(nchar(1000)) 是 nchar(1000),如果你将它存储在 varchar 中,它将被存储为?。

因此,您的问题的直接答案是肯定的,每个 Unicode (nvarchar) 都有一个 varchar 编码值。
但这并不意味着它将解码回原始值。

于 2013-09-01T13:16:24.477 回答