首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么sql server在NVarchar字段中存储问号字符而不是日语字符?

为什么sql server在NVarchar字段中存储问号字符而不是日语字符?
EN

Stack Overflow用户
提问于 2009-04-17 16:05:30
回答 8查看 103.5K关注 0票数 38

我正在尝试将日语字符存储在SQL Server 2000数据库的nvarchar字段中。

当我运行update语句时:

代码语言:javascript
复制
update blah 
set address = N'スタンダードチャ'
where key_ID = 1

在SQL Server Management Studio中,然后运行select语句,我只看到返回到结果窗口的问号。我在查看数据库的网页中看到了相同的问号。

这似乎是存储适当数据的问题,对吧?有没有人能告诉我我需要做些什么呢?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-04-17 16:06:39

您需要检查数据库、数据访问层和表示层中处理此数据的所有代码的全球化设置。这包括SSMS。

(您还需要找出您使用的是哪个版本,2003不存在……)

票数 4
EN

Stack Overflow用户

发布于 2010-02-04 23:10:05

考虑到您的示例,这可能不是一个正确的答案,但我看到的最常见的原因是字符串文字不需要unicode N前缀。

因此,不是

代码语言:javascript
复制
set address = N'スタンダードチャ'

用户将尝试写入不带unicode前缀的nvarchar字段

代码语言:javascript
复制
set address = 'スタンダードチャ'

另请参阅:N prefix before string in Transact-SQL query

票数 107
EN

Stack Overflow用户

发布于 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中,支持数据的数据类型为:

代码语言:javascript
复制
nchar
nvarchar
nvarchar(max) – new in SQL Server 2005
ntext

nchar、nvarchar、nvarchar(max)和ntext的用法分别与char、varchar、varchar(max)和text相同,但以下情况除外:

代码语言:javascript
复制
- 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'

适用于

代码语言:javascript
复制
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 Edition
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/761036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档