字符串的长度,是字符数量,还是字节数量?

Posted 悦光阴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串的长度,是字符数量,还是字节数量?相关的知识,希望对你有一定的参考价值。

当计算字符串的长度时,大多数人脑海中闪现的第一个函数是:Len(),该函数返回的字符的数量(number of characters),不包含结尾空格,但是包含前导空格。

示例,Len 函数返回的是字符的数量,而不是字符的字节数量。

declare @str_v varchar(10)
declare @str_nv nvarchar(10)
set @str_v= ab 
set @str_nv=N ab 

select len(@str_v) as len_v,len(@str_nv) as len_nv

技术分享

如果要计算字符串占用的字节数量(number of bytes),请使用DataLength()函数。

示例,每个unicode字符占2B,ASCII 字符占1B。

declare @str_v varchar(10)
declare @str_nv nvarchar(10)
set @str_v= ab 
set @str_nv=N ab 

select datalength(@str_v) as len_v,datalength(@str_nv) as len_nv

技术分享

 

参考doc:

LEN (Transact-SQL)

DATALENGTH (Transact-SQL)

以上是关于字符串的长度,是字符数量,还是字节数量?的主要内容,如果未能解决你的问题,请参考以下文章

Redis学习笔记----简单动态字符串

java比较字符串长度

sql将字符串拆分为始终相同数量的片段

Redis 底层数据结构

Redis 底层数据结构

将数据数量/容量格式化为字符串