我剛剛更新了從.net 3.5到4.的內部應用程序,並且我在使用字符串編碼時遇到了一些問題。我有一個我添加到註冊表中的字符串。它被加密(作爲字節數組),然後使用編碼windows-1252轉換爲字符串。在VB.net 3.5和4中的字符串長度差異
當我將其從註冊表中拉出時,我測試了長度。使用VB.net 3.5 .Length
給了我23.使用.Net 4我得到了35.Net 4版本更長,但它最後只有多餘的空字符。這會影響解密過程的效果。默認的文字編碼有什麼改變嗎?
.Net4低於。在.NET 3.5的版本出來一樣,但沒有填充0
的(0): 13
(1): 49
(2): 27
(3): 42
(4): 102
(5): 77
(6): 178
(7): 197
(8): 98
(9): 198
(10): 240
(11): 79
(12): 171
(13): 216
(14): 82
(15): 55
(16): 24
(17): 134
(18): 117
(19): 97
(20): 223
(21): 69
(22): 149
(23): 0
(24): 0
(25): 0
(26): 0
(27): 0
(28): 0
(29): 0
(30): 0
(31): 0
(32): 0
(33): 0
編輯:
所以輸入到註冊表有填充。它似乎只是從註冊表中獲得結果不同的字符串。
我使用這個從註冊得到它:
Dim regKey As Microsoft.Win32.RegistryKey
regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(//Location, False)
val = poKey.GetValue(name)
所以我簡單的解決方案將是擺脫填充,當我添加字符串,但任何想法,爲什麼它的不同?
你使用什麼代碼來編碼字符串? – tinstaafl