Попробуйте это:
credentials = {}
with open('email_list_test.csv', 'r') as f:
reader = csv.DictReader(f, delimiter=';') # replace the delimiter character with the one you're using.
for row in reader:
credentials.update(row)
Вы должны, вероятно, URL Кодировать Вашу строку Base64 на стороне C# перед отправкой его.
И URL Декодирует его на php стороне до base64, декодирующего его.
Сторона C#
byte[] encbuff = System.Text.Encoding.UTF8.GetBytes("the string");
string enc = Convert.ToBase64String(encbuff);
string urlenc = Server.UrlEncode(enc);
и сторона php:
$data = $_REQUEST['in'];
$decdata = urldecode($data);
$raw = base64_decode($decdata);
Отметьте это +
допустимый символ в кодировании base64, но при использовании в URL оно часто переводится назад в пространство. Это пространство может путать Ваш PHP base64_decode
функция.
У Вас есть два подхода к решению этой проблемы:
Первая опция является, вероятно, Вашим лучшим выбором.
Преобразовать. ToBase64String, кажется, не добавляет ничего дополнительного насколько я вижу. Например:
byte[] bytes = new byte[1000];
Console.WriteLine(Convert.ToBase64String(bytes));
Вышеупомянутый код распечатывает загрузку AAAAs с == в конце, который корректен.
Мое предположение - это $data
на стороне PHP не содержит что enc
сделал на стороне C# - проверяют их друг по другу.
в c#
this is a <B>long</b>string. and lets make this a3214 ad0-3214 0czcx 909340 zxci 0324#$@#$%%13244513123
превращается
dGhpcyBpcyBhIDxCPmxvbmc8L2I+c3RyaW5nLiBhbmQgbGV0cyBtYWtlIHRoaXMgYTMyMTQgYWQwLTMyMTQgMGN6Y3ggOTA5MzQwIHp4Y2kgMDMyNCMkQCMkJSUxMzI0NDUxMzEyMw==
для меня. и я думаю, что + повреждает все это.
Сторона PHP должна быть: $ data = $ _REQUEST ['в']; // $ decdata = urldecode ($ data); $ raw = base64_decode ($ decdata);
$ _REQUEST уже должен быть URL-декодирован.