我在MS SQLServer上有一个带有nVarchar列的表。我使用insert语句保存UTF-8字符。它被保存为???。如果我通过update语句使用相同的值更新同一列,则会正确保存。
有关此问题的任何提示吗?使用的排序规则是:SQL_Latin1_General_CP1_CI_AS
答案 0 :(得分:3)
显示您的插入声明。很可能 - N
失踪:
DECLARE @v NVARCHAR(100)='Some Hindi from Wikipedia मानक हिन्दी';
SELECT @v;
结果:Some Hindi from Wikipedia ???? ??????
SET @v=N'Some Hindi from Wikipedia मानक हिन्दी';
SELECT @v;
结果:Some Hindi from Wikipedia मानक हिन्दी
字符串文字前面的N
告诉SQL-Server将内容解释为unicode
(确切地说:ucs-2
)。否则它将被视为 1字节编码的扩展ASCII ,它无法处理所有字符......