php中javascript解码中的base64编码
我正在尝试用javascript对字符串进行编码,并用php对其进行解码 我使用此代码将字符串放入inputbox,然后通过表单put发送它php中javascript解码中的base64编码,javascript,php,character-encoding,base64,Javascript,Php,Character Encoding,Base64,我正在尝试用javascript对字符串进行编码,并用php对其进行解码 我使用此代码将字符串放入inputbox,然后通过表单put发送它 document.getElementById('signature').value= b64EncodeUnicode(ab2str(signature)); 这是要解码的代码 $signature=base64_decode($signature); 这里有一个用于编码页面的JSFIDLE: 问题是,我总是得到一个98%正确的字符串,但有一些不同
document.getElementById('signature').value= b64EncodeUnicode(ab2str(signature));
这是要解码的代码
$signature=base64_decode($signature);
这里有一个用于编码页面的JSFIDLE:
问题是,我总是得到一个98%正确的字符串,但有一些不同的字符。
例如:(第一个字符串是在inputbox中打印的字符串)
这两个州的政府部门的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集的数据采集R,äu OX¾xè3òkå¾n,SáW§ÝV:ö~Å×á尝试使用以下命令用js对字符串进行编码:
var signature = document.getElementById('signature');
var base64 = window.btoa(signature);
现在使用php
,您只需使用:base64\u decode($signature)
如果这不起作用(我还没有测试过),那么btoa
func可能有问题。请在此处查看此链接:
其中有一个功能应该可以工作(如果上述功能不能工作)
所以您粘贴二进制数据,并期望文本输入能够成功地接受它们?“我正在尝试用javascript编码字符串”编码为哪种格式?不确定要求是什么?问题既不是JS中的编码,也不是PHP中的解码。问题是您试图将二进制数据从外部源复制并粘贴到HTML表单中。明智的方法*是让外部源以base64[或另一种7位安全编码]对数据进行编码为了确保数据不受干扰地通过系统。@zerkms我没有发送bibary数据。我发送的是base64编码的数据。这就是编码的目的:不发送二进制数据。@guest271314如果您阅读该行下面的两行,您会看到我已经使用b64EncodeUnicode。我还尝试了btoa和其他一些编码函数。始终存在类似问题。在浏览器中呈现或传递URL不安全。有关对任意字符串进行编码/解码的安全方法,请参阅。
function b64EncodeUnicode(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
b64EncodeUnicode(signature); // "4pyTIMOgIGxhIG1vZGU="