C# 用Go编码UTF-8

C# 用Go编码UTF-8,c#,go,C#,Go,我试图在Go中找到与以下C#代码等价的代码 pwd = "abc123"; encoding = Encoding.UTF8; SHA1 sha1 = SHA1.Create(); byte[] hash = sha1.ComputeHash(encoding.GetBytes(text)); 我知道围棋里有一个包裹。我知道我能跑: pwd := "abc123" hasher := sha1.New() // SHA1.Create(); hasher.Write([]byte(pwd))

我试图在Go中找到与以下C#代码等价的代码

pwd = "abc123";
encoding = Encoding.UTF8;
SHA1 sha1 = SHA1.Create();
byte[] hash = sha1.ComputeHash(encoding.GetBytes(text));
我知道围棋里有一个包裹。我知道我能跑:

pwd := "abc123"
hasher := sha1.New() // SHA1.Create();
hasher.Write([]byte(pwd)) // sha1.ComputeHash but without encoding in UTF8 ?

我不知道如何在散列时获得正确的编码。我想知道是否可以根据文档获得一些转换此文件的帮助:

缺少字节级转义的字符串文本始终保持有效的UTF-8 序列


因此,如果字符串在Golang源代码中,则不需要将其编码为utf8。但是,如果字符串来自输入,则程序包就是您的朋友。

根据文档:

缺少字节级转义的字符串文本始终保持有效的UTF-8 序列


因此,如果字符串在Golang源代码中,则不需要将其编码为utf8。但是,如果字符串来自输入,则包是您的朋友。

Go字符串是utf8编码的。只有在需要其他编码时才需要重新编码。(这也不是加密,您对字节进行散列的事实也与字符串编码无关)@JimB谢谢you@JimB,这是不正确的:Go中的字符串是不透明的字节集合。字符串文字确实提供UTF-8编码的字符串,因为Go源文件定义为UTF-8编码。另一种情况是,Go字符串被解释为在UTF-8中编码,即使用
range
语句对其中的Unicode代码点(符文)进行迭代。完整的细节在必读资料中。@kostix:是的,也许我在转换为符文时应该说“解释”或假设为utf8,因为字符串表示显然只是一系列字节。@JimB,我知道你的技能水平很高;只是照常吹毛求疵。我认为我们应该努力避免在一个新出现的地鼠的头脑中建立一个错误的思维模式,因此觉得有必要插嘴;-)Go字符串是utf8编码的。只有在需要其他编码时才需要重新编码。(这也不是加密,您对字节进行散列的事实也与字符串编码无关)@JimB谢谢you@JimB,这是不正确的:Go中的字符串是不透明的字节集合。字符串文字确实提供UTF-8编码的字符串,因为Go源文件定义为UTF-8编码。另一种情况是,Go字符串被解释为在UTF-8中编码,即使用
range
语句对其中的Unicode代码点(符文)进行迭代。完整的细节在必读资料中。@kostix:是的,也许我在转换为符文时应该说“解释”或假设为utf8,因为字符串表示显然只是一系列字节。@JimB,我知道你的技能水平很高;只是照常吹毛求疵。我认为我们应该努力避免在一个新出现的地鼠的头脑中建立一个错误的思维模式,因此觉得有必要插嘴;-)