【发布时间】:2014-05-20 08:18:03
【问题描述】:
我正在处理我的数据库中的 unicode 内容。我有一个定义为 varchar(max) 的数据字段, 并且我正在阻止用户在此字段中保存未知字符,例如“≤”(所有 unicode 高于 U+00FF)。 这样做的时候,我发现有些字符如果发送保存在这个字段中会显示为“?”,所以我以为“U + 00FF”以上的所有unicode字符都会这样显示,但后来我发现“U+201B”即“‛”显示“?”但下一个字符“U+201C”即““”显示为““”。 谁能给我解释一下这是为什么?
更新:对不起,如果我不清楚,但我不想转换为 nvarchar,我想将我的字段保留为 varchar。 我需要了解的是为什么像“‛”这样的字符显示为“?”在“varchar”字段中,而下一个 unicode 字符““”正确显示?
【问题讨论】:
-
请阅读我更新后的问题,对造成的误解深表歉意。
-
“显示”是什么意思?在什么应用中?
-
在 sql server 中,如果我在表中看到它或者我选择并打印它。为什么 sql server 显示不正确,而更高的 unicode 可以显示?!
-
可能是使用 UTF-8 编码?
-
是的,我想是的,但我希望我知道它是如何对一个角色而不是另一个角色做到这一点的!
标签: sql-server unicode character-encoding varchar nvarchar