C#字符串(字节)的长度

这么简单的问题,我都忘记了,不知道你们还记得吗,希望你们都还记得?

using System;
public class Test
{
    public static void  Main()
    {
              string str1 = "abced.,.某某某";
              int len2 = str1.Length;
              int leng = System.Text.Encoding.Default.GetBytes(str1.ToCharArray()).Length;
              Console.WriteLine("字符串为"+str1);
              Console.WriteLine("字符串的长度"+len2);
              Console.WriteLine("字节的长度"+leng);
              Console.ReadLine();
    }
}

控制台执行结果为

对于字节的长度一个汉字是对应两个字节的

顺便看一下Sql Server中char nchar varchar  nvarchar

char类型: 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节,CHAR存储定长数据很方便,CHAR字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达  到了10个字节,都要占去10个字节的空间。因为是固定长度,所以速度效率高。

VARCHAR:存储变长数据,如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。

Nchar类型和Nvarchar类型是怎么一回事呢?为了与其他多种字符的转换,如中文,音标等,对每个英文(ASCII)字符都占用2个字节,对一个汉字也占用两个字节,所有的字符都占用2个字节。 

    nchar(n):包含n个字符的固定长度Unicode字符数据。n的值必须介于1与4,000之间。存储大小为n字节的两倍。   varchar(n):变长型字符数据类型,存储最长长度为8,000 个字符   nvarchar(n):可变长度 Unicode 数据,其最大长度为 4,000 字符.字节的存储大小是所输入字符个数的两倍,就是说它是双字节来存储数据的。如果存储数据如果存在单字节时,它也是以双字节来占用存储空间的。   varchar一般适用于英文和数字,Nvarchar适用中文和其他字符,其中N表示Unicode常量,可以解决多语言字符集之间的转换问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LeetCode

LeetCode <dp>152&628 Maximum Product Subarray

Given an integer array nums, find the contiguous subarray within an array (conta...

14340
来自专栏Android干货园

Kotlin初级(4)- - - 字符串和字符.md

13420
来自专栏java学习

Java基础第三天学习笔记

03.01_Java语言基础(逻辑运算符的基本用法)(掌握) * A:逻辑运算符有哪些 * &,|,^,! * &&,|| * B:案例演示 * 逻辑运算...

29570
来自专栏码农阿宇

C# 找出泛型集合中的满足一定条件的元素 List.Wher()

在学习的过程中,发现泛型集合List<T>有一个Where函数可以筛选出满足一定条件的元素,结合Lambda表达式使用特别方便,写出来与大家分享。 1.关于Fu...

385100
来自专栏老马说编程

(91) Lambda表达式 / 计算机程序的思维逻辑

在之前的章节中,我们的讨论基本都是基于Java 7的,从本节开始,我们探讨Java 8的一些特性,主要内容包括: 传递行为代码 - Lambda表达式 函数式...

20880
来自专栏hbbliyong

看到他我一下子就悟了---委托

看到大家的留言,我想说下我对委托的了解,首先看它的定义: 委托 就是将方法作为方法的参数 不用先看例子什么的,你就多品味品味这句话,然后你看下使用委托的步骤, ...

28680
来自专栏日常学python

Python最容易掉进去的10个坑

相比于其他语言,Python的语法比较简单易学,但一旦不注意细节,刚入门的新手很容易就会掉进语法错误的坑里。

9330
来自专栏Lambda

Java8新特性

1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 中的默认方法与静态方法 6....

23060
来自专栏别先生

jdk1.8学习、jdk1.9学习、jdk10.0学习和总结

https://www.oschina.net/translate/109-new-features-in-jdk-10

8210
来自专栏程序生活

2017/6/8-python正则表达式的使用

#match()函数的使用 #\w匹配字母数字及下划线 # \s匹配任意空白字符,等价于 [\t\n\r\f]. # \d匹配任意数字,等价于 [0-9] ...

36570

扫码关注云+社区

领取腾讯云代金券