字符长度还是字节长度

今天碰见一小细节问题,找了好久发现是长度,我没有很清楚的了解。

string str = "a.23859697AA  (芜湖杰诺瑞) b.23859697BA(长沙博世)";

str.Length= 40

在C#中 字符串str的长度是40 这里是指字符串的长度

插入到SQL数据库中 str varchar(50)  报错:String or binary data would be truncated.  字符串长度过长需截断。

然后select  Len(‘a.23859697AA  (芜湖杰诺瑞) b.23859697BA(长沙博世)‘)  查询出来的结果是40  以为没有超出长度

后来经过搜索发现 select Datalength(‘a.23859697AA  (芜湖杰诺瑞) b.23859697BA(长沙博世)‘)  查询出来的结果是52

Datalength: 返回字符串的字节长度  
Len: 返回字符长度

而varchar的长度是指 字符串的字节长度

附: varchar nvarchar char的区别

来自:http://www.cnblogs.com/yelaiju/archive/2010/05/29/1746826.html

时间: 2024-11-12 05:19:12

字符长度还是字节长度的相关文章

获取字符串长度、字符长度、字节长度

度量快速开发平台中基础函数中有一个  len  的获取字符长度函数.具体用法是:len ("123Abc字符串") 这个方法得到的结果是:9 即一共有多少个字符,没有区分单字节与双字节的情况. 如果某一个字段设置的长度为9,那刚才这个字符串保存到数据库的时候,会提示字符串过长,因为数据库中一般是按照字节长度来判断的. 度量快速开发平台中,是没有直接提供这个获取字符串字节长度得函数.用户想知道这个字符串占用了多少字节,在平台中如何来得到呢? 我们知道,度量快速开发平台是与c#完美结合使用

获得qstring字符串的长度(字节长度和所占的像素宽度)

1.QString 用length()返回字符串的长度,即字节数, 在中英文字符都是以 Unicode 方式编码的,所以,无论中英文都算的长度为 1. 想要取得英文长度为 1 中文长度为 2 的总长度,必须用toLocal8bit().具体使用方法如下所示: QString s = "ab中文"; int length = s.length(); //length = 4; length = s.toLocal8Bit().length(); //length = 6 2.以上都是获取

在SQL Server中测量字符串长度和字节长度

--计算字符个数SELECT LEN('全身浅表淋巴结(颈部.腋窝.腹股沟.锁骨上.锁骨下.滑车.腘窝)+男性生殖系统+浅表包块')GO--计算字节数SELECT DATALENGTH('全身浅表淋巴结(颈部.腋窝.腹股沟.锁骨上.锁骨下.滑车.腘窝)+男性生殖系统+浅表包块')GO 原文地址:https://www.cnblogs.com/songr/p/12291565.html

java String长度与varchar长度匹配理解(字符和字节长度理解)

string中的length()长度,返回的是char的数量,每个char可以存储世界上任何类型的文字和字符,一个char 而Oracle库中的指定varchar,指的是字节长度.不是字符.字符和字节之间还有编码格式的转换嘞,对应具体一个字符用多少字节编码问题. 而Oracle库中的指定varchar,指的是字节长度.不是字符.字符和字节之间还有编码格式的转换嘞,对应具体一个字符用多少字节编码问题. 而Oracle库中的指定varchar,指的是字节长度.不是字符.字符和字节之间还有编码格式的转

MySQL的varchar定义长度是指字符长度,不是字节长度

今天在做页面的一个input的输入字符串长度校验的任务,数据库中对这个字段定义为 title  varchar(128) null, MySQL数据库. 一直以为128是字节长度,一个汉字2字节,英文等一个字节,所以最多只能放64个汉字. 可实际是我能放128个汉字,不能放129个汉字.说明:MySQL的varchar定义长度是指字符长度,不是字节长度. 字符: 人们使用的记号,抽象意义上的一个符号.一个汉字和英文就是一个字符,如'1', '中', 'a', '$', '¥',…… 字节: 计算

js识别中英文字符的字节长度并进行裁切

//调用方法,传入字符串和需要返回的字节长度即可function cutstr(str,len){ var str_length = 0; var str_len = 0; str_cut = new String(); str_len = str.length; for(var i = 0;i<str_len;i++){ a = str.charAt(i); str_length++; if(escape(a).length > 4){ //中文字符的长度经编码之后大于4 str_lengt

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

1 //计算 num 的 n 次幂 2 function numPow(num, n) { 3 if (n == 1) { 4 return num; 5 } 6 return num * numPow(num, n - 1); 7 } 8 9 //计算 n 的阶乘 10 function nFactorial(n) { 11 if (n == 1) { 12 return 1; 13 } 14 return n * nFactorial(n - 1); 15 } 16 17 //斐波那契数列,

js获取字符串字节长度

先上代码 //返回val的字节长度 function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { if (val[i].match(/[^\x00-\xff]/ig) != null) //全角 len += 2; else len += 1; } return len; } //返回val在规定字节长度max内的值 function getByteVal(val, max) { var return

求一个字符串的字节长度

编写一个方法 求一个字符串的字节长度 假设:一个英文字符占用一个字节,一个中文字符占用两个字节 function GetBytes(str){ var len = str.length; var bytes = len; for(var i=0; i<len; i++){ if (str.charCodeAt(i) > 255) bytes++; } return bytes; } alert(GetBytes("你好,as"));