我试图在MSSQL中执行下面提到的查询。
insert into STUDENT (STUDENT_NAME, STUDENT_MARKS, SID) values ('索引', 10, 2)
STUDENTNAME列的类型为NVARCHAR。
执行上述查询后。插入的学生姓名是: ??
据我所知,上述问题与编码有关,因此我通过添加N修改了上述查询,如下所示:
insert into STUDENT (STUDENT_NAME, STUDENT_MARKS, SID) values (N'索引', 10, 2)
上述查询正在按预期运行,并且正在成功插入中文字符。
问题:我使用JDBC执行此插入查询,所以我需要使用N继续执行所有值,如上所示。或者在驱动程序级别还有其他一些设置来解决这个问题?
答案 0 :(得分:2)
我在Microsoft article上找到了这个,
使用字母N前缀Unicode字符串常量。无 N前缀,该字符串被转换为默认代码页 数据库。此默认代码页可能无法识别某些字符。
N
表示字符串是Unicode(N实际上代表国家语言字符集),这意味着您传递的是NCHAR,NVARCHAR或NTEXT值,而不是CHAR,VARCHAR或TEXT。
请关注this link帖子:
Difference between varchar and nvarchar?
除了您的问题,如果您使用INSERT
查询在表格中插入记录,那么是您必须在每个字符串值之前添加N
。