0
我有以下的C#代碼將圖像轉換成使用UrlTokenEncode base64編碼字符串:解析C#UrlTokenEncode串用PHP
byte[] imageArray = System.IO.File.ReadAllBytes(note_path);
string base64ImageRepresentation = HttpServerUtility.UrlTokenEncode(imageArray);
byte[] data = Encoding.UTF8.GetBytes($"id={id}&apikey={apikey}&friend_ids={friend_ids}&ttl={ttl}¬e={base64ImageRepresentation}");
Console.Write(sendRequest("upload-note", data));
Console.ReadLine();
我送這個給我的燈服務器可以通過PHP解析。很明顯,這是行不通的,因爲UrlTokenEncode如何使用-
代替+
,_
代替/
,並且填充的整數值等於符號。我有以下代碼來解決這個問題:
$request->note = str_replace('-', '+', str_replace('_', '/', $request->note));
$lastCharacter = substr($request->note, -1);
if($lastCharacter == 1 || $lastCharacter == 2){
$request->note = substr($request->note, 0, -$lastCharacter);
if($lastCharacter == 1){
$request->note = $request->note . '=';
} else {
$request->note = $request->note . '==';
}
}
我對這個過程的擔心來自尾部等號。我讀到只有1或2個等號用於填充,但是有沒有填充的情況?如果這是可能的話,那麼字符串的最後一個字符可能是任何隨機的整數值是正確的?如果這是真的,那麼我目前在php中解碼的過程將不起作用,因爲它假定最後一個字符將始終爲1或2,並且該字符將表示所需等號的數量...
如果我的過程將無法正常工作,有沒有更好的方法來解碼ac#UrlTokenEncode字符串與PHP?