byte[] 转字符串 中文乱码

闲来无事,写了一个UWP的UDP/TCP小Demo,网上找了个网络调试助手,就兴冲冲的开始玩耍

结果“鸡同鸭讲”:

讲英文的时候大家都是abc,hello man!how are you?

讲中文的时候:

UWP Demo=》你好啊!

网络调试助手=》浣犲ソ鍟婏紒

好吧,可能一个是北方人,一个南方人。

查一查,UWP默认支持以下编码:
        public static Encoding ASCII { get; }
        public static Encoding BigEndianUnicode { get; }
        public static Encoding Unicode { get; }
        public static Encoding UTF32 { get; }
        public static Encoding UTF7 { get; }
        public static Encoding UTF8 { get; }

挨个试试,都不行,然后各种搜索~~

Java平台和一些老旧桌面程序,一般都是用GBK/GB2312

然而UWP木有这2个编码,桌面程序倒是支持

新时代程序员谁就应该统一用UTF-8!谁还管啥GBK,GBA啥玩意儿的!(问题解决不了,本人只好这样安慰自己)

奈何还是不甘心,终于搜索到这样一篇文章:难道.NET Core到R2连中文编码都不支持吗?

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

问题解决~

然后新的问题来了:如何判断 byte[] 的编码,以正确转换为中文字符串而不出现乱码?

各种尝试之后,中文大家还是默认UTF-8吧!就酱

原文地址:https://www.cnblogs.com/LCHL/p/6170520.html