sql - 无法在 SQL Server 2008 中插入字符 '≤'

标签 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编写查询..但是怎么写呢?谢谢。

最佳答案

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

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

关于sql - 无法在 SQL Server 2008 中插入字符 '≤',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4336016/

相关文章:

sql - 将模型对象保存到 SQL DB 中

mysql - 产品价格提高10%

mysql - 根据两个连接表结果从查询中排除记录

sql-server - 使用 SSIS 2012 将数据从 Sql Server 2014 导出到 Excel 文件

sql-server - 如何使用一条 SQL 更新命令设置开始日期和修改日期?

java - SQL Server 存储过程的输出参数被截断为 4000 个字符

c++ - glibmm 2.4 转换输入中的无效字节序列

sql - Mysql排序查询

mysql - SQL latin1 到 utf-8 转换

python - 如何从 sqlite 中获取一个 µ 字符并放到网页上?