数据库中字符长度和C#代码中字符长度

数据库中:
nvarchar 类型的字段.汉字和字母一样长度.
如:nvarchar(32)能存储32个汉字.或32个英文字母.或任意32个字符.

而:varchar类型字段:一个汉字是2个长度.英文字符是1个长度.
如:varchar(32) 能存16个汉字.或32个英文字符.(1个汉字算2个长度)


C#代码中:
String.length Length 属性此实例中返回 Char 对象数, Unicode 字符的不是数。 这是 Unicode 字符可能由多个 Char表示。 使用 System.Globalization.StringInfo 类与每个 Unicode 字符而不是每 Char。
  Console.WriteLine("abc".Length);//输出长度:3
  Console.WriteLine("你好啊".Length);//输出长度:3
 
  .NET Framework 使用 Char 结构表示 Unicode 字符。 Unicode 标准以调用代码的标量数量点的单个 21 位的每个 Unicode 字符,并定义指定的 UTF-16 编码窗体代码如何点的输入到一个或多个 16 位值序列。 每个 16 位值从十六进制 0x0000 在 Char 结构到 0xFFFF 和存储。 Char 对象的值与其 16 位数字 (序号值。)

字符对象、 Unicode 字符和字符串
 

String 对象是表示文本字符串 Char 结构的集合。 大多数 Unicode 字符可由单个 Char 对象,但是,按基字符的字符表示形式,代理项对,并/或组合字符序列由多个 Char 对象表示。 因此,在 String 对象的一 Char 结构与单个 Unicode 字符不一定是等效的。


微博:软件开发大师 微博:北京淘宝联盟
跑运输网站 广告位招商网站

多个 16 位代码单元在以下情况下表示单个 Unicode 字符:

原文地址:https://www.cnblogs.com/suizhikuo/p/2444574.html