ASCII 和 UTF8 编码的字符串具有不同的长度!

Hed*_*dge 1 .net c# encoding

我正在阅读一个流,想知道为什么 UTF-8 编码的字符串比 ASCII 字符串短。

  ASCIIEncoding encoder = new ASCIIEncoding();
  UTF8Encoding enc = new UTF8Encoding();   
  string response = encoder.GetString(message, 0, bytesRead); //4096
  string responseUtf8 = enc.GetString(message, 0, bytesRead);  //3955
Run Code Online (Sandbox Code Playgroud)

Ado*_*ais 5

UTF-8 处理的字符串与 ASCII 不同:在 UTF-8 上,每个字符的长度可能为 1、2 或 3 个字节。但是,ASCII 将每个字节视为一个字符。C# UTF-8 编码器计算格式正确的 UTF-8 字符,而不是字节。我希望这可以帮助你。