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

HTML符号在SQL Server数据库中显示为问号,html,sql-server,symbols,Html,Sql Server,Symbols,今天我注意到html符号,例如:★ 在我的数据库中显示为问号 我使用varchar作为类型,我使用的数据库是MicrosoftSQL2008 有人知道这个问题的解决方法吗 insert into tablename values (N'★ ') 上面是用于插入的语法,请确保字段数据类型为nvarchar,或者尝试此测试示例 create table test (abc nvarchar) insert into test values (N'★ ') select * from test

今天我注意到html符号,例如:★ 在我的数据库中显示为问号

我使用varchar作为类型,我使用的数据库是MicrosoftSQL2008

有人知道这个问题的解决方法吗

insert into tablename values (N'★ ') 
上面是用于插入的语法,请确保字段数据类型为
nvarchar
,或者尝试此测试示例

create table test (abc nvarchar)
insert into test values (N'★ ')
 select * from test

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

如果在数据类型中存储unicode字符,则应使用NVARCHAR数据类型,并在向列中插入数据时使用
N
前缀,告知sql server传递的字符串中将包含一些unicode字符

使用VARCHAR数据类型

CREATE TABLE #Temp (Column1 VARCHAR(100))
INSERT INTO #Temp VALUES('★')
SELECT * FROM #Temp
CREATE TABLE  #Tempn (Column1 NVARCHAR(100) )
INSERT INTO #Tempn VALUES(N'★')        --<-- N prefix for Unicode Characters
SELECT * FROM #Tempn
结果

╔═════════╗
║ Column1 ║
╠═════════╣
║ ?       ║
╚═════════╝
╔═════════╗
║ Column1 ║
╠═════════╣
║ ★       ║
╚═════════╝
使用NVARCHAR数据类型

CREATE TABLE #Temp (Column1 VARCHAR(100))
INSERT INTO #Temp VALUES('★')
SELECT * FROM #Temp
CREATE TABLE  #Tempn (Column1 NVARCHAR(100) )
INSERT INTO #Tempn VALUES(N'★')        --<-- N prefix for Unicode Characters
SELECT * FROM #Tempn

将符号定义为NVARCHAR而不是VARCHAR

很好的答案,如果我正在传递一个参数,我可以将N@test,是否有效?我想执行以下操作:DECLARE@test NVARCHAR='N“★ "' create table test(abc nvarchar)insert into test values(@test)select*from test上面的代码只是一个示例,我将从.NET将值传递给参数,我该怎么做?