特殊字符(下标)未公开显示

Mic*_*bol 3 sql-server subscript

我想把一些化学数据放到表格的列中.但在现有表中,下标显示为普通字符.其中一些被显示为问号.我应该做些什么来修复它?

当我输入此代码时

 SELECT N'H' + NCHAR(0x2082) + N'O'
Run Code Online (Sandbox Code Playgroud)

它正确显示"H 2 O"

当我把它放入现有的表格

 INSERT INTO tab (id, label)
 VALUES('100', N'H' + NCHAR(0x2082) + N'O')
Run Code Online (Sandbox Code Playgroud)

它显示"H2O"不正确

ugh*_*hai 5

你需要在表中使用NVARCHAR/ NCHARcolumn而不是VARCHAR/ CHAR来存储unicode字符.

在下面的示例中,@table1使用NVARCHAR数据类型正确存储公式,而@table2VARCHAR列中存储相同的值

DECLARE @table1 TABLE
(
    ID int,
    formula NVARCHAR(5)
)
DECLARE @table2 TABLE
(
    ID int,
    formula VARCHAR(5)
)

insert into @table1
SELECT '100', N'H' + NCHAR(0x2082) + N'O'

insert into @table2
SELECT '100', N'H' + NCHAR(0x2082) + N'O'

SELECT * FROM @table1;
SELECT * FROM @table2;
Run Code Online (Sandbox Code Playgroud)