System.Text.Encoding.UTF8.GetBytes(s)同一台计算机上的字符串的不同值,不同的程序

Cav*_*rob -1 c# string encoding

我正在做一个

System.Text.Encoding.UTF8.GetBytes(s) 
Run Code Online (Sandbox Code Playgroud)

在使用.NET 2.0框架的两个不同程序(一个控制台,一个Web)中的字符串上,编码与两者不同.对于字符串"everything",我得到相同的结果,但对于字符串"OnI3UwUc",我得到两个不同的结果.

对于"OnI3UwUc",6f6e693375777563对于另一个程序中的"OnI3UwUc",我得到4f63493355775563.

在里面

我试着把它写成与我的一些经典ASP代码一样操作:

Dim crypt : Set crypt = CreateObject("Chilkat.Crypt2")      
crypt.UnlockComponent("TXTECHCrypt_6X6EnMdFNRCe") 
crypt.HashAlgorithm = "sha1"  
crypt.CryptAlgorithm = "aes" 
crypt.CipherMode = "ecb" 
crypt.EncodingMode = "hex" 
crypt.SetEncodedKey "100202330405560608790A8B0C9D0EAF","hex" 
Run Code Online (Sandbox Code Playgroud)

Tim*_*mwi 6

你提到你从其中一个程序得到的UTF-8是6f6e693375777563.这解码回来了"oni3uwuc".换句话说,您的其他程序在对UTF-8进行编码之前对所有字母进行小写.