Php 当我使用base64#u解码时,它为什么会在结尾返回字符,如ÃÜ;还是7号?他们错了

Php 当我使用base64#u解码时,它为什么会在结尾返回字符,如ÃÜ;还是7号?他们错了,php,base64,decode,Php,Base64,Decode,当我在base64中加密时,加密值是正确的,并且我可以看到我想要的结果的正常值,当我使用函数解码base64(base64_decode)时,问题就会出现 在结果的最后出现了像ÃÜ或7这样的字符。我设置了两个案例和我正在使用的所有代码 你能帮我吗?我给你发的所有代码中隐含的网页 ================================================================================== 案例1: 字符串: base64_编码: base64

当我在base64中加密时,加密值是正确的,并且我可以看到我想要的结果的正常值,当我使用函数解码base64(base64_decode)时,问题就会出现

在结果的最后出现了像ÃÜ或7这样的字符。我设置了两个案例和我正在使用的所有代码

你能帮我吗?我给你发的所有代码中隐含的网页

==================================================================================

案例1: 字符串: base64_编码: base64_已解码: ==================================================================================

案例2: 字符串: base64_编码: base64_已解码: ==================================================================================

AJAX调用: ==================================================================================

PHP代码: 编码函数。。。 当我在资源管理器中回显取消返回时,结果是我之前设置的值

加密函数。。。 当我在资源管理器中回显取消返回时,结果是我之前设置的值

$string_b64是用base64值编码的,您可以在。。。 ================================================================================== 我向您添加我的php页面的标题:

header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
header("Pragma: no-cache"); //HTTP 1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: text/html; charset=ISO-8859-1');
我不知道它是否能暗示base64_de代码中的罕见行为。 功能代码为:

public static function encrypting($array) {
    $res = "";
    $delimiter = array("||", "::", "++", "--");

    if (is_array($array)) {

        $gen = "";
        //echo implode(">", $array[0]);
        //echo count($array);
        foreach($array as $clave = > $valor) {
            $aux = [];
            if ($gen != "") $gen. = $delimiter[0];

            foreach($valor as $v) {
                if (is_array($v)) {
                    array_push($aux, implode($delimiter[3], $v));
                } else {
                    array_push($aux, $v);
                }
            }

            $gen = "$clave$delimiter[1]".implode($delimiter[2], $aux);

        }

        $res = $gen;
    } else $res = $array;

    return base64_encode($res);
    //return $res;
}


public static function decrypting($string_b64) {
    $res = [];

    $string = imap_base64($string_b64);

    echo $string;

    $delimiter = array("||", "::", "++", "--");

    $pas1 = explode($delimiter[0], $string);

    foreach($pas1 as $valor1) {
        $i = 0;

        $pas2 = explode($delimiter[1], $valor1);

        $aux = [];

        $pas3 = explode($delimiter[2], $pas2[1]);

        foreach($pas3 as $valor2) {

            if (strpos($valor2, $delimiter[3]) > 0) $aux[] = explode($delimiter[3], $valor2);
            else $aux[] = trim($valor2);

        }

        $res[$pas2[0]] = $aux;
    }

    return $res;
}
================================================================================== 使用示例:

$personalitzats1 = array("CIF_NIF" => array(false, "", "Aquest Camp es personalitzat...."));

$value = encrypting($personalitzats1)

decrypting($value);
问题在于,在base64_解码后,当字符出现时,我会回显该值

我已将页面保存为ISO:cp1252编目(标准)我认为这不是问题所在


如果我使用外部网页,如,并在文本区域中设置值q0lgx05jrjo6bxvsdglsaw5lkysrkzettilrk2fhywetlwjiymjiyg==结果是正确的。

在案例#1中,如果使用编码字符串解码,则它不会显示与案例#2相同的(ÃÜ2)可能是iso是cp1252?还是php的版本?我使用的是PHP版本5.4.16
VALOR::varchar++bool
VkFMT1I6OnZhcmNoYXIrK2Jvb2w=
VALOR::varchar++bool7
$.ajax({
    url: _ajax_url,
    type: "GET",
    async: true,
    data: {
        info: data
    },
    contentType: "application/json; charset=utf-8",

    //dataType: "jsonp",
    success: function (data, textStatus) {....
    }
});
return base64_encode($res);
return base64_encode($res);
$string =  base64_decode($string_b64);
header("Cache-Control: no-cache, must-revalidate"); //HTTP 1.1
header("Pragma: no-cache"); //HTTP 1.0
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: text/html; charset=ISO-8859-1');
public static function encrypting($array) {
    $res = "";
    $delimiter = array("||", "::", "++", "--");

    if (is_array($array)) {

        $gen = "";
        //echo implode(">", $array[0]);
        //echo count($array);
        foreach($array as $clave = > $valor) {
            $aux = [];
            if ($gen != "") $gen. = $delimiter[0];

            foreach($valor as $v) {
                if (is_array($v)) {
                    array_push($aux, implode($delimiter[3], $v));
                } else {
                    array_push($aux, $v);
                }
            }

            $gen = "$clave$delimiter[1]".implode($delimiter[2], $aux);

        }

        $res = $gen;
    } else $res = $array;

    return base64_encode($res);
    //return $res;
}


public static function decrypting($string_b64) {
    $res = [];

    $string = imap_base64($string_b64);

    echo $string;

    $delimiter = array("||", "::", "++", "--");

    $pas1 = explode($delimiter[0], $string);

    foreach($pas1 as $valor1) {
        $i = 0;

        $pas2 = explode($delimiter[1], $valor1);

        $aux = [];

        $pas3 = explode($delimiter[2], $pas2[1]);

        foreach($pas3 as $valor2) {

            if (strpos($valor2, $delimiter[3]) > 0) $aux[] = explode($delimiter[3], $valor2);
            else $aux[] = trim($valor2);

        }

        $res[$pas2[0]] = $aux;
    }

    return $res;
}
$personalitzats1 = array("CIF_NIF" => array(false, "", "Aquest Camp es personalitzat...."));

$value = encrypting($personalitzats1)

decrypting($value);