Я пытаюсь перепроектировать приложение кодировки base64, которое используется сторонним проектом, поэтому я могу создать пользовательский интерфейс. Мой метод был успешным с одним примером, но, похоже, не совсем ударил в других примерах (несколько символов, которые не совсем правильные).base64 decode/encode inconsistency
AQAAAAAAGQBec2lwOigwMjAxMjM0NTZbMC05XSspQC4qFwBzaXA6MDIwMTIyMTEzQDEyNy4wLjAuMQAA
^^ фактическое кодирование base64 в базе данных
AQAAAAAAEABec2lwOigwMjAxMjM0NTZbMC05XSspQC4qEwBzaXA6MDIwMTIyMTEzQDEyNy4wLjAuMQoA
^^ лучшая попытка соответствовать методу PHP
Благодаря управлению персонажей я реализовал некоторые JSon кодирование, чтобы сделать его проще определить строки, которые используются для переменных. Строки соответствуют этому примеру, но результат кодирования base64 отличается от фактического, что ожидается.
$actualfour = 'AQAAAAAAGQBec2lwOigwMjAxMjM0NTZbMC05XSspQC4qFwBzaXA6MDIwMTIyMTEzQDEyNy4wLjAuMQAA';
echo "".$actualfour;
echo "<br />";
$four = chr(01);
$four .= chr(00);
$four .= chr(00);
$four .= chr(00);
$four .= chr(00);
$four .= chr(00);
$four .= chr(16);
$four .= chr(00);
$four .= '^sip:(02[0-9]+)@.*';
$four .= chr(19);
$four .= chr(00);
$four .= 'sip:[email protected]
'.chr(00);
$jsonfour = json_encode($four);
echo "unencoded: ".$jsonfour;
echo "<br />";
$encodefour = base64_encode($four);
echo "".$encodefour;
echo "<br />";
$jsonencodefour = json_encode(base64_decode($encodefour));
echo "encoded: ".$jsonencodefour;
echo "<br />";
if ($encodefour != $actualfour) { echo "FAIL"; } else { echo "PASS"; }
^^ Код Метод
AQAAAAAAGQBec2lwOigwMjAxMjM0NTZbMC05XSspQC4qFwBzaXA6MDIwMTIyMTEzQDEyNy4wLjAuMQAA
unencoded: "\u0001\u0000\u0000\u0000\u0000\u0000\u0010\u0000^sip:(02[0-9]+)@.*\u0013\u0000sip:[email protected]\n\u0000"
AQAAAAAAEABec2lwOigwMjAxMjM0NTZbMC05XSspQC4qEwBzaXA6MDIwMTIyMTEzQDEyNy4wLjAuMQoA
encoded: "\u0001\u0000\u0000\u0000\u0000\u0000\u0010\u0000^sip:(02[0-9]+)@.*\u0013\u0000sip:[email protected]\n\u0000"
FAIL
^^ Выход