我正在尝试将日语字符存储在SQL Server 2000数据库的nvarchar字段中。
当我运行update语句时:
update blah
set address = N'スタンダードチャ'
where key_ID = 1在SQL Server Management Studio中,然后运行select语句,我只看到返回到结果窗口的问号。我在查看数据库的网页中看到了相同的问号。
这似乎是存储适当数据的问题,对吧?有没有人能告诉我我需要做些什么呢?
发布于 2009-04-17 16:06:39
您需要检查数据库、数据访问层和表示层中处理此数据的所有代码的全球化设置。这包括SSMS。
(您还需要找出您使用的是哪个版本,2003不存在……)
发布于 2010-02-04 23:10:05
考虑到您的示例,这可能不是一个正确的答案,但我看到的最常见的原因是字符串文字不需要unicode N前缀。
因此,不是
set address = N'スタンダードチャ'用户将尝试写入不带unicode前缀的nvarchar字段
set address = 'スタンダードチャ'发布于 2014-04-09 15:15:42
当在DB nvarchar字段中存储时使用印度语言字符时,我也遇到了同样的问题。然后我看了一篇微软的文章-
http://support.microsoft.com/kb/239530
他们说,在SQL Server中处理unicode字符串常量时,必须在所有Unicode字符串之前加上前缀N resolved.In 。
SQL Server Unicode支持
SQL Server Unicode数据类型支持UCS-2编码。Unicode数据类型为每个字符使用两个字节而不是一个字节来存储字符数据。在两个字节中有65,536个不同的位模式,因此Unicode可以使用一组标准的位模式对所有语言中的每个字符进行编码,包括具有大量字符的语言。
Unicode在SQL Server中,支持数据的数据类型为:
nchar
nvarchar
nvarchar(max) – new in SQL Server 2005
ntextnchar、nvarchar、nvarchar(max)和ntext的用法分别与char、varchar、varchar(max)和text相同,但以下情况除外:
- Unicode supports a wider range of characters.
- More space is needed to store Unicode characters.
- The maximum size of nchar and nvarchar columns is 4,000 characters, not 8,000 characters like char and varchar.
- Unicode constants are specified with a leading N, for example, N'A Unicode string'适用于的
Microsoft SQL Server 7.0 Standard Edition
Microsoft SQL Server 2000 Standard Edition
Microsoft SQL Server 2005 Standard Edition
Microsoft SQL Server 2005 Express Edition
Microsoft SQL Server 2005 Developer Edition
Microsoft SQL Server 2005 Enterprise Edition
Microsoft SQL Server 2005 Workgroup Editionhttps://stackoverflow.com/questions/761036
复制相似问题