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

Dar*_*nov 4 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'
Run Code Online (Sandbox Code Playgroud)

然后

select * from ruds_values_short_text  
where rud_id=12202 and field_code='detection_limit'
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

12202 detection_limit = asjdklasd 11
Run Code Online (Sandbox Code Playgroud)

您可以看到字符≤已在=中转换

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

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

Mar*_*ith 7

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

update ruds_values_short_text 
set value = N'? asjdklasd'
where rud_id=12202 and field_code='detection_limit'
Run Code Online (Sandbox Code Playgroud)