无法在SQL Server 2008中插入字符“≤”

时间:2010-12-02 14:26:02

标签: sql sql-server utf-8 character-encoding

我有一个SQL Server 2008数据库和一个表的nvarchar(256)字段。疯狂的问题是当我运行这个查询时:

update ruds_values_short_text 
set value = '≤ asjdklasd' 
where rud_id=12202 and field_code='detection_limit'

然后

select * from ruds_values_short_text  
where rud_id=12202 and field_code='detection_limit'

我得到了这个结果:

12202 detection_limit = asjdklasd 11

您可以看到字符≤已在=

中转换

这是一个与编码相关的问题,实际上,如果我尝试在Notepad ++中粘贴'≤',它会粘贴'='但是当我将ANSI转换为UTF-8时我得'≤'。

所以..我想我应该用UTF8编写查询..但是怎么样?感谢。

2 个答案:

答案 0 :(得分:7)

您需要使用N前缀,以便将文字视为Unicode,而不是将其视为数据库默认排序规则的代码页中的字符数据。

update ruds_values_short_text 
set value = N'≤ asjdklasd'
where rud_id=12202 and field_code='detection_limit'

答案 1 :(得分:1)

试试update ruds_values_short_text set value = N'≤ asjdklasd' where rud_id=12202 and field_code='detection_limit'。 N表示您提供的是国家语言,因此它尊重编码。