.net core GB2312编码错误

发布时间 2023-10-07 11:25:09作者: 喜爱糖葫芦

提问

System.NotSupportedException: No data is available for encoding 936

回答

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

示例

中文编码解析

 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            var gb2312= Encoding.GetEncoding(936).GetString(valueBuffer, 0, (int)returnedLength);
            if (Regex.IsMatch(gb2312,@"[\u4e00-\u9fa5]"))
            {
                return gb2312;
            }
            var utf8= Encoding.UTF8.GetString(valueBuffer, 0, (int)returnedLength);
            if (Regex.IsMatch(utf8,@"[\u4e00-\u9fa5]"))
            {
                return utf8;
            }
            var _default= Encoding.Default.GetString(valueBuffer, 0, (int)returnedLength);
            return _default;