【发布时间】:2011-06-11 19:42:33
【问题描述】:
SQL Server 中是否可以有一个可以存储中文、韩文和欧文字符的字段?我的汉字就变成?????
数据类型也是NVARCHAR。
【问题讨论】:
-
英文也需要存储吗?
-
嗨,阿德曼 - 是的,英语也是如此
标签: sql-server database internationalization cjk
SQL Server 中是否可以有一个可以存储中文、韩文和欧文字符的字段?我的汉字就变成?????
数据类型也是NVARCHAR。
【问题讨论】:
标签: sql-server database internationalization cjk
NVARCHAR 是正确的类型 - 它以 2 字节 Unicode 存储所有内容。
您需要注意的是,在 SQL Server Management Studio 中使用 NVARCHAR 字段时,您绝对必须在这种情况下使用 N'....' 前缀!
如果你使用这个:
INSERT INTO dbo.YourTable(NVarcharColumn)
VALUES('Some Chinese text here')
然后 SSMS 将临时将您指定的字符串文字转换为 VARCHAR(非 Unicode!),因此您将丢失任何 Unicode 编码的字符。
但是,如果您使用:
INSERT INTO dbo.YourTable(NVarcharColumn)
VALUES(N'Some Chinese text here')
(注意字符串文字前的 N 前缀!)那么 SSMS 将始终将所有内容作为 Unicode 处理,并且应保留您的中文或韩文(或其他)特殊字符。
【讨论】: