【发布时间】:2018-10-14 21:12:02
【问题描述】:
我的许多数据库列定义为 VARCHAR(255),现在想输入 unicode 字符(尤其是 € 符号)。 插入数据不显示 unicode 符号,但如果我更新我的插入语句以使用 NVARCHAR 参数,它就可以工作。但为什么?我没有将列定义从 VARCHAR 更改为 NVARCHAR。
为了支持这些符号,我应该将所有参数从 VARCHAR 更改为 NVARCHAR 还是应该将列定义更新为 NVARCHAR(255)?
【问题讨论】:
-
这是因为符号是 unicode 并且 nvarchar 支持它而 varchar 不支持。这里的解决方案几乎是将列类型更改为 nvarchar 并对您将值传递到这些列中的所有参数执行相同的操作。
-
你需要将类型改为
nvarchar以支持sql-server中的unicode字符 -
但是你们有什么解释为什么它在查询中使用 varchar 列和 nvarchar 参数?
-
@MK_ 这相当不精确。欧元符号也存在于 unicode 以外的字符集中(例如 ISO-8859-15、windows-1252)
标签: sql-server character-encoding