【问题标题】:SQL Server database field to handle korean and chinese characters用于处理韩文和中文字符的 SQL Server 数据库字段
【发布时间】:2011-06-11 19:42:33
【问题描述】:

SQL Server 中是否可以有一个可以存储中文、韩文和欧文字符的字段?我的汉字就变成?????

数据类型也是NVARCHAR

【问题讨论】:

  • 英文也需要存储吗?
  • 嗨,阿德曼 - 是的,英语也是如此

标签: sql-server database internationalization cjk


【解决方案1】:

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 处理,并且应保留您的中文或韩文(或其他)特殊字符。

【讨论】:

  • 谢谢你,但它似乎不起作用..我觉得我在某处错过了一些设置?
  • @Alessandro:您是在尝试处理 SSMS 中的数据,还是来自客户端应用程序的数据?另外:您在服务器和数据库上使用哪种排序规则??
  • 通过基于coldfusion的Web应用程序。虽然我直接在SSMS SERVER COLLATION中尝试了该脚本:SQL_Latin1_General_CP1_CI_AS DB COLLATION:SQL_Latin1_General_CP1_CI_AS
  • 这解决了我的问题! :D
  • 我已将列类型设置为 varchar 并将 char 显示为 ?,当我将其更改为 nvarchar 时,它成功存储了中文、日文和韩文字符。我确实确认我的数据库排序规则已设置为 SQL_Latin1_General_CP1_CI_AS
猜你喜欢
  • 2019-07-10
  • 2016-11-08
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 2016-03-25
  • 2016-01-28
  • 2010-12-19
  • 1970-01-01
相关资源
最近更新 更多