标题:[求助]为什么print len('中')结果为1?print len(N'中')结果也为1?
只看楼主
扬麻
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-2-23
 问题点数:0 回复次数:2 
[求助]为什么print len('中')结果为1?print len(N'中')结果也为1?

请问:
在sql中,char,varchar,是单字节字符,而nchar,nvarchar是双字节字符,
哪汉字‘中’到底是双字字符还是单字节字符?
如果是双字节字符,为什么print len('中')结果为1,print len(N'中')结果也为1,
如果是单字节字符,哪汉字怎么能用单字节表示哪?

搜索更多相关主题的帖子: print len 字符 结果 单字节 
2007-09-23 08:40
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
我想你有点不太清楚.
根据ms sqlserver的联机丛书.是这样写道.
LEN
返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格。

Len是取字符个数.而不是字节数.
如果你想得到字节数.
而可以用DataLength函数

DATALENGTH
返回任何表达式所占用的字节数。

select len('中国'),datalength('中国')

我的msn: myfend@
2007-09-23 09:44
扬麻
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-2-23
得分:0 
谢谢!我明白了,讲的非常清楚!这里的版主真热心。

[此贴子已经被作者于2007-9-23 10:32:16编辑过]

2007-09-23 10:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-172205-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.200003 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved