小编Hon*_* Ao的帖子

为什么TSQL将"sofia"视为与"sofia"相同?这是什么字符串编码?

我遇到了一个情况下SQL服务器可以存储"索菲亚"和"索菲亚"是两个不同的字符串,但在TSQL比较时,他们是不管逐份使用,即使二进制分页相同:

CREATE TABLE #R (NAME NvarchAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS)
INSERT INTO #R VALUES (N'sofia')
INSERT INTO #r VALUES (N'?????')

SELECT * FROM #r WHERE NAME = N'?????'

sofia
?????

(2 row(s) affected)

IF '?????' = 'sofia'  COLLATE SQL_Latin1_General_CP1_CI_AS 
SELECT 'Values are the same'
ELSE
SELECT 'Values are different'

-------------------
Values are the same

(1 row(s) affected)

IF '?????' = 'sofia'  COLLATE SQL_Latin1_General_CP437_BIN
SELECT 'Values are the same'
ELSE
SELECT 'Values are different'

-------------------
Values are the same

(1 row(s) affected)

I …
Run Code Online (Sandbox Code Playgroud)

c# sql-server unicode encoding collation

4
推荐指数
1
解决办法
128
查看次数

标签 统计

c# ×1

collation ×1

encoding ×1

sql-server ×1

unicode ×1