【发布时间】:2014-01-18 12:48:42
【问题描述】:
今天我注意到诸如 ★ 之类的 html 符号在我的数据库中显示为问号。
我使用 varchar 作为类型,我使用的数据库是 microsoft sql 2008。
有人知道解决这个问题的方法吗?
【问题讨论】:
标签: html sql-server symbols
今天我注意到诸如 ★ 之类的 html 符号在我的数据库中显示为问号。
我使用 varchar 作为类型,我使用的数据库是 microsoft sql 2008。
有人知道解决这个问题的方法吗?
【问题讨论】:
标签: html sql-server symbols
您的列需要使用NVARCHAR 数据类型,VARCHAR 数据类型只能用于非Unicode 字符。
如果您在数据类型中存储 unicode 字符,则应使用 NVARCHAR 数据类型,并且在将数据插入 Column 时使用 N 前缀告诉 sql server 在传递的字符串中会有一些 unicode 字符。
使用 VARCHAR 数据类型
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 ║
╠═════════╣
║ ★ ║
╚═════════╝
【讨论】:
将符号定义为 NVARCHAR 而不是 VARCHAR
【讨论】:
insert into tablename values (N'★ ')
以上是插入语法并确保您的字段数据类型为nvarchar 或试试这个测试示例
create table test (abc nvarchar)
insert into test values (N'★ ')
select * from test
【讨论】: