C# 相同的代码在.net core和.net 4.7.2中给出了不同的结果

C# 相同的代码在.net core和.net 4.7.2中给出了不同的结果,c#,.net-core,.net-4.7.2,C#,.net Core,.net 4.7.2,下面是获取字符串Md5值的C#代码 using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var urlPart = "dd5fad78903da9d3ce4905f8e731d6c4ýundefinedý3780534ý5"

下面是获取字符串Md5值的C#代码

using System;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
        var urlPart = "dd5fad78903da9d3ce4905f8e731d6c4ýundefinedý3780534ý5";
        Console.WriteLine("value= " + urlPart);
        var md5val = md5(urlPart, Encoding.Default);
        Console.WriteLine("md5= " + md5val);
    }

    public static string md5(string value, System.Text.Encoding encoding)
    {
        var buffer = encoding.GetBytes(value);
        //Console.WriteLine("buffer= " + BitConverter.ToString(buffer));

        MD5 md5Hasher = MD5.Create();
        byte[] data = md5Hasher.ComputeHash(buffer);
        StringBuilder sBuilder = new StringBuilder();
        for (int i = 0; i < data.Length; i++)
        {
            sBuilder.Append(data[i].ToString("x2"));
        }
        return sBuilder.ToString();
    }
  }
}
使用系统;
使用System.Security.Cryptography;
使用系统文本;
名称空间控制台EAPP1
{
班级计划
{
静态void Main(字符串[]参数)
{
var urlPart=“dd5fad78903da9d3ce4905f8e731d6c4ý未定义ý3780534ý5”;
Console.WriteLine(“value=“+urlPart”);
var md5val=md5(urlPart,Encoding.Default);
Console.WriteLine(“md5=“+md5val”);
}
公共静态字符串md5(字符串值,System.Text.Encoding)
{
var buffer=encoding.GetBytes(值);
//Console.WriteLine(“buffer=“+BitConverter.ToString(buffer));
MD5 md5Hasher=MD5.Create();
byte[]data=md5Hasher.ComputeHash(缓冲区);
StringBuilder sBuilder=新StringBuilder();
for(int i=0;i
如果我在.NET4.72上编译它

md5=“b5d0f17bf46f869abf8d8f5115626b7”

如果我在.NETCore3.0上编译,它会

md5=“96af5cba2ae75384e0f46a961dcbc4e”

怎么了,为什么会有不同的结果

有人能帮我吗?

检查一下

  var md5val = md5(urlPart, Encoding.Default);
因为
Encoding.Default
总是Utf-8,如果是.net内核和.net framework中系统的活动代码页


假设您已经验证了
编码。默认值是相同的。。。请确认(或者更好-使用UTF8等固定编码)侧注:有更好看的数组->十六进制()谢谢你的回答,我只需要找到我的计算机的defaut编码是什么