Ale*_*dro 17 database sql-server internationalization cjk
是否可以在SQLServer中有一个可以存储中文,韩文和欧洲字符的字段?我的汉字变成了?????
数据类型也是NVARCHAR.
mar*_*c_s 38
NVARCHAR 是适当的类型 - 它以2字节的Unicode存储所有内容.
您需要注意的是在使用NVARCHARSQL Server Management Studio中的字段时 - 在这种情况下您必须使用N'....'前缀!
如果你使用这个:
INSERT INTO dbo.YourTable(NVarcharColumn)
VALUES('Some Chinese text here')
Run Code Online (Sandbox Code Playgroud)
然后SSMS将临时转换您指定的字符串文字VARCHAR(非Unicode!),因此您将丢失任何Unicode编码的字符.
但是,如果您使用:
INSERT INTO dbo.YourTable(NVarcharColumn)
VALUES(N'Some Chinese text here')
Run Code Online (Sandbox Code Playgroud)
(注意字符串文字之前的N前缀!)然后SSMS将始终以Unicode的形式处理所有内容,并且应保留您的中文或韩文(或其他)特殊字符.