【问题标题】:does the htmlEncode method replace the need for an nvarchar sql datatype?htmlEncode 方法是否取代了对 nvarchar sql 数据类型的需求?
【发布时间】:2013-09-01 11:18:18
【问题描述】:

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

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

【问题讨论】:

  • 但是在保存到 DB 时为 HTML 编码字符串并不是一个好主意

标签: asp.net .net sql-server


【解决方案1】:

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

Windows-1252

插入测试

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

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

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

【讨论】:

  • 感谢您进一步扩展您的原始答案
猜你喜欢
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
  • 2023-04-06
  • 2012-11-02
  • 2019-05-07
  • 2015-05-05
  • 1970-01-01
相关资源
最近更新 更多