特殊字符(下标)未正确显示
Special characters (subscripts) not shown proprely
我想将一些化学数据放入 table 的列中。但在现有的 table 中,下标显示为普通字符。其中一些显示为问号。我应该怎么做才能解决它?
当我输入这段代码时
SELECT N'H' + NCHAR(0x2082) + N'O'
正确显示"H2O"
当我把它放入现有的table
INSERT INTO tab (id, label)
VALUES('100', N'H' + NCHAR(0x2082) + N'O')
显示"H2O"不正确
您需要在 table 中使用 NVARCHAR
/ NCHAR
列而不是 VARCHAR
/ CHAR
来存储 unicode 字符。
在下面的示例中,@table1
使用 NVARCHAR
数据类型正确存储公式,而 @table2
将相同的值存储在 VARCHAR
列中
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;
我想将一些化学数据放入 table 的列中。但在现有的 table 中,下标显示为普通字符。其中一些显示为问号。我应该怎么做才能解决它?
当我输入这段代码时
SELECT N'H' + NCHAR(0x2082) + N'O'
正确显示"H2O"
当我把它放入现有的table
INSERT INTO tab (id, label)
VALUES('100', N'H' + NCHAR(0x2082) + N'O')
显示"H2O"不正确
您需要在 table 中使用 NVARCHAR
/ NCHAR
列而不是 VARCHAR
/ CHAR
来存储 unicode 字符。
在下面的示例中,@table1
使用 NVARCHAR
数据类型正确存储公式,而 @table2
将相同的值存储在 VARCHAR
列中
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;