2010-09-06 55 views
-1

我做在兩個不同的程序字符串中的System.Text.Encoding.UTF8.GetBytes(S)在同一臺計算機上的繩子不同的價值觀,不同的程序

System.Text.Encoding.UTF8.GetBytes(s) 

(一個控制檯,一個網絡)使用.NET 2.0框架和編碼回來不同於兩者。對於字符串「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" 
+2

難道會問你太多張貼兩種不同的結果你? – Timwi 2010-09-06 20:40:18

+1

我覺得很難相信這一點。你如何覈實通話結果? – 2010-09-06 20:42:29

+0

打印結果。如果您使用調試器來查看調用的結果,則不要。它會誤導你。 – 2010-09-06 20:43:43

回答

6

你提到UTF-8,你從程序之一是6f6e693375777563得到。這解碼回到"oni3uwuc"。換句話說,你的其他程序在UTF-8編碼它們之前將所有的字母縮小。

0

這是非常不可能的。對於兩個字符串使用File.WriteAllText("C:/file1.txt", s),並仔細比較它們。他們是不同的。

在非常偶然的情況下,他們實際上是相等的,請試着從這些兩個方案不影響此輸出去除一切,然後張貼在connect.microsoft.com,並請點這裏。但是請注意,超過100行的程序幾乎肯定會進一步減少。

相關問題