特殊字符(下标)未显示



我想把一些化学数据放在表中的列中。但在现有表中,下标显示为普通字符。其中一些显示为问号。我应该怎么做才能修复它?

当我输入此代码时

 SELECT N'H' + NCHAR(0x2082) + N'O'

它正确显示"H2O"

当我把它放到现有表中时

 INSERT INTO tab (id, label)
 VALUES('100', N'H' + NCHAR(0x2082) + N'O')

它显示"H2O"不正确

您需要在表中使用 NVARCHAR/NCHAR 列而不是 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;

最新更新