gpt4 book ai didi

javascript - 在 JS 中进行 Base64 编码并在 PHP 中进行解码时出现变音问题

转载 作者:行者123 更新时间:2023-12-05 06:45:43 24 4
gpt4 key购买 nike

我搜索了很多但仍然没有找到问题的原因:

当调用我的 php 网络服务时,我对登录凭据进行编码(“PeterPan:Ützel([])ÄÄÖÖ”)并使用 UTF-8 传递它们:

$.ajaxSetup({
beforeSend: function(request) {
request.setRequestHeader("Authentication", auth);
},
type: "POST",
contentType: "charset=utf-8"
});
var tok = sUsername + ':' + sPassword;
var hash = this.Base64.encode(tok);
var auth = hash;
$.ajax({
url: "php/login.php"
});

在 PHP 中,我使用以下方法对字符串进行解码:

$headers = array();
foreach($_SERVER as $key => $value) {
if (substr($key, 0, 5) <> 'HTTP_') {
continue;
}
$header = str_replace(' ', '-', ucwords(str_replace('_', ' ', strtolower(substr($key, 5)))));
$headers[$header] = $value;
}

$response['Encoded'] = base64_decode($headers['Authentication']);
$encoded = json_encode($response);
header("Content-Type: text/html; charset=utf-8");
echo $encoded;

当响应到达时,编码后的字符串如下所示:“PeterPan:\u00dctzel([])\u00c4\u00c4\u00d6\u00d6'”

变音符号编码不正确...

我做错了什么?

最佳答案

您可以执行以下操作

JavaScript :

// returns PeterPan%3A%C3%9Ctzel(%5B%5D)%C3%84%C3%84%C3%96%C3%96
var value = encodeURIComponent(sUsername + ':' + sPassword);

PHP:

header('Content-Type: text/html; charset=utf-8'); // might need this

// returns PeterPan:Ützel([])ÄÄÖÖ
echo rawurldecode("PeterPan%3A%C3%9Ctzel(%5B%5D)%C3%84%C3%84%C3%96%C3%96");

关于javascript - 在 JS 中进行 Base64 编码并在 PHP 中进行解码时出现变音问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22038816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com