HTML符号在SQL Server数据库中显示为问号

Jam*_*mie 6 html sql-server symbols

今天我发现html符号如:★正在我的数据库中显示为问号.

我使用varchar作为类型,我使用的数据库是microsoft sql 2008.

有谁知道解决这个问题?

M.A*_*Ali 9

您需要NVARCHAR为列使用数据类型,VARCHAR数据类型只能用于非unicode字符.

如果要在数据类型中存储unicode字符,则应使用NVARCHAR数据类型,并且在将数据插入Column时,使用N前缀告诉sql server,传递的字符串中会有一些unicode字符.

使用VARCHAR DataType

CREATE TABLE #Temp (Column1 VARCHAR(100))
INSERT INTO #Temp VALUES('?')
SELECT * FROM #Temp
Run Code Online (Sandbox Code Playgroud)

结果

???????????
? Column1 ?
???????????
? ?       ?
???????????
Run Code Online (Sandbox Code Playgroud)

使用NVARCHAR DataType

CREATE TABLE  #Tempn (Column1 NVARCHAR(100) )
INSERT INTO #Tempn VALUES(N'?')        --<-- N prefix for Unicode Characters
SELECT * FROM #Tempn
Run Code Online (Sandbox Code Playgroud)

结果

???????????
? Column1 ?
???????????
? ?       ?
???????????
Run Code Online (Sandbox Code Playgroud)