System.Text.Encoding.Default

string strTmp = "abcdefg某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;//获取与系统区域设置中的默认 ANSI 代码页相关联的编码,按照指定编码类型把字符串指定到指定的Byte数组 ,而字符串是占两个字符,所以会是13将一组字符编码为一个字节序列
int j= strTmp.Length;
以上代码执行完后,i= j=
答:i=13,j=10

System.Text.Encoding.Default.GetBytes("23f"); 
功能是将字符串转成byte数组
字符串的内容将依次转成byte数组的每一个值
GetBytes是将字符转成ascii码
所以2的ascii就是50
依次类推
通常将某个字符串或者文本流转换成默认的编码

获取操作系统的当前 ANSI 代码页的编码。

同计算机可以使用不同编码作为默认,且该默认编码甚至可以在单个计算机上更改。 因此,从一台计算机传输到另一台或甚至在同一台计算机上的不同时间检索到的数据可能不正确转换。 此外,Default 属性返回的编码使用最佳回退将不支持的字符映射到代码页支持的字符。 出于这两个原因,一般不推荐使用默认编码。 若要确保编码后的字节能够正确解码,应用程序应当使用带前导码的 Unicode 编码(如 UTF8Encoding  UnicodeEncoding) 。 另一选择是使用较高级别的协议以确保使用同一格式进行编码和解码

 Default 定义的系统 ANSI 代码页包含 ASCII 字符集,但是其编码不同于 ASCII 的编码。 由于所有的 Default 编码会丢失数据,因此应用程序可以改用 UTF8 代替 。 在 U+00 到 U+7F 的范围内,UTF-8 通常是相同的,但是可以在不丢失数据的情况下对其他字符进行编码。

原文地址:https://www.cnblogs.com/shuenjian901/p/3387294.html