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

时间:2013-12-31 15:53:46

标签: html sql-server symbols

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

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

有没有人知道修复此问题?

3 个答案:

答案 0 :(得分:9)

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

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

使用VARCHAR DataType

CREATE TABLE #Temp (Column1 VARCHAR(100))
INSERT INTO #Temp VALUES('★')
SELECT * FROM #Temp

<强>结果

╔═════════╗
║ Column1 ║
╠═════════╣
║ ?       ║
╚═════════╝

使用NVARCHAR数据类型

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

<强>结果

╔═════════╗
║ Column1 ║
╠═════════╣
║ ★       ║
╚═════════╝

答案 1 :(得分:2)

将符号定义为NVARCHAR而不是VARCHAR

答案 2 :(得分:1)

insert into tablename values (N'★ ') 

上面是插入的语法,并确保您的字段数据类型为nvarchar或尝试此测试示例

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