C# Unicode编码区分大小端,且Encoding.Unicode采用了小端模式
ASCII由于只有一个字节,因此没有大小端的问题
UTF-8因为其本身附带了字节结构信息,因此也没有大小端问题
Unicode因为至少2个字节,且一个符号强制规定对应一个数值,因此有大小端的问题
C#本地是小端模式,Encoding.Unicode默认也采用了小端模式,不过官方给了一个Encoding.BigEndianUnicode,这个静态属性是大端模式
string str = "abc123测试啊"; byte[] bs1 = Encoding.Unicode.GetBytes(str); //这个属性的函数是小端模式 Console.WriteLine("小端:" + bs1.ToHexString()); byte[] bs2 = Encoding.BigEndianUnicode.GetBytes(str); //官方给了另一个大端的属性 Console.WriteLine("大端:" + bs2.ToHexString());