关于字符串的字节长度,不是字符长度。

  string s = "张";
            var ss = System.Text.Encoding.UTF8.GetBytes(s).Length;//UTF8编码格式 中文三个字节、英文字母或者数字或者特殊字符 占1个字节(全角输入法 占三个字节)
            var ss1 = System.Text.Encoding.UTF8.GetByteCount(s);
            var ss2 = System.Text.Encoding.GetEncoding("GB2312").GetByteCount(s);//GB2312编码格式,中文占两个字节 、英文字母或者数字或者特殊字符 占一个字节(全角 占两个字节)
            Console.Write(ss + "  " + ss1 + "   " + ss2);
时间: 2024-12-19 16:16:20

关于字符串的字节长度,不是字符长度。的相关文章

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

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

字符长度还是字节长度

今天碰见一小细节问题,找了好久发现是长度,我没有很清楚的了解. 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.23859697A

c# 判断字符是否是全角, 获取字符串的字节数 , 获取字符串指定长度字节数的字符串

1 Encoding.Default.GetByteCount(checkString);  =2 全角 =1 半角 /// <summary> /// 获取字符串的字节长度 /// </summary> /// <param name="str"></param> /// <returns></returns> public static int GetStringByteLength(this string s

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

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

计算 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 //斐波那契数列,

求一个字符串的字节长度

编写一个方法 求一个字符串的字节长度 假设:一个英文字符占用一个字节,一个中文字符占用两个字节 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"));

【转载】C# 字符串截取指定长度的中文字符--精点

通常,一个中文会占两个字节的空间.很多语言里,一个中文字符就算是2个字符长度. 但在C#中,string里包含的中文字符只占一个字符长度.这就导致很多时候,使用string.SubString(int startIndex,int length)方法来截取字符会错位. 最近由于工作原因,会截取指定长度的字符来使用.但是在文档里,1个中文是2个长度来计算.刚开始还只是以为文档错误,后来才知道是由于C#的差异造成的. 刚开始,是直接到网上找算法,但是找到的算法,基本思路都是挨个字符判断(根据ASCI

[email&#160;protected]求一个字符串的字节长度

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>@求一个字符串的字节长度</title></head><body></body> <script> function GetBytes(str) { var len = str.length; var bytes

javascript 计算字符串的字节长度

在做前端验证表单时,有时候要检测一个字符串的字节长度,保证其字节长度不超过数据库表中对应字段允许的最大长度. 不废话,上方法 1.我们通常遇到的情况都是中文+英文,所以可以判断每个字符的 Unicode 编码值,大于255,表示中文,字节应该比英文大1个字节: 1 function byteLength(str){ 2 var byteLen = str.length, len = str.length, i; 3 for(i = 0;i<len;i++){ 4 if(str.charCodeA

(不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度

#include <stdio.h> /* (不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度 */ int string_len(char *s); int main() { //char *name = "itcast"; // 男 \u434\u4343\u434 int size = string_len("tre777"); printf("%d\n", size); retur