我一直在擺弄我的程序,我一直在使用允許進行BASIC身份驗證的urlread的修改版本。的問題是,我必須包括下面的代碼行到基座urlread功能:比較MATLAB中的字符串問題
urlConnection.setRequestProperty('Authorization', 'Basic passphrase');
...其中密碼是的base64編碼的字符串「用戶:通」。如果我將密碼短語直接放到該行的字符串中,程序就可以正常工作,當我嘗試連接以獲得產生的「基本密碼」字符串時,麻煩就開始了。最初,我只是有:
['Basic', ' ', passphrase]
後沒有工作,我做了一些探索,並在命令窗口中:實驗各地
passphrase = 'somerandompassphrase';
teststr1 = ['Basic', ' ', passphrase];
teststr2 = ['Basic', ' ', 'somerandompassphrase'];
teststr3 = 'Basic somerandompassphrase';
strcmp(teststr1, teststr2)
strcmp(teststr1, teststr3)
strcmp(teststr2, teststr3)
輸出是1,或真正爲每一個(如預期)。然而,如果我採取 'somerandompassphrase' 的base64encode(這是 'c29tZXJhbmRvbXBhc3NwaHJhc2U ='):
encoded = base64encode(passphrase);
teststr1 = ['Basic', ' ', encoded];
teststr2 = ['Basic', ' ', 'c29tZXJhbmRvbXBhc3NwaHJhc2U='];
strcmp(teststr1, teststr2)
的輸出爲0,或假。它不應該是真的嗎? base64encode函數可以找到here。
即使從快速測試:
strcmp(encoded, 'c29tZXJhbmRvbXBhc3NwaHJhc2U=')
輸出仍爲0
請幫幫忙,我不知道發生了什麼事情。