2014年10月19日星期日

字符串、字符、字节以及bit位小结与疑问 - 麻将我会

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
字符串、字符、字节以及bit位小结与疑问 - 麻将我会  阅读原文»

字符串是由一个个字符组成的,每个字符又有一个或多个字节来表示,每个字节又由8个bit位来表示

在C#里 字符串通常由string来声明,字符由char来声明,字节由byte来表示,位由bit来表示,具体分析见下面的测试代码分析:

完整测试代码:

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Linq.Expressions;
5 using System.Text;
6 using System.Threading.Tasks;
7 using System.IO;
8 namespace CSharpRumenJD
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14
15 string unicodestr = "啊?/123";
16 Console.WriteLine("字符串:" + unicodestr);
17 Console.WriteLine("字符长度:" + unicodestr.Length);
18 Console.WriteLine("Unicode字节长度:" + System.Text.Encoding.Unicode.GetByteCount(unicodestr));
19 var unicodebytes = System.Text.Encoding.Unicode.GetBytes(unicodestr);
20 Console.WriteLine("gb2312字节长度:" + Encoding.GetEncoding("gb2312").GetByteCount(unicodestr));
21 var gb2312bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(unicodestr);
22 #region 乱码测试
23 var gb2312tounidecodestr = System.Text.Encoding.Unicode.GetString(gb2312bytes);
24 Console.WriteLine("gb2312bytes转化成Unicode字符串:" + gb2312tounidecodestr);
25 var gb2312str = System.Text.Encoding.GetEncoding("gb2312").GetString(gb2312bytes);
26 Console.WriteLine("gb2312bytes字符串:" + gb2312str);
27

没有评论:

发表评论