Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP base64编码的响应在Javascript中未正确解码_Javascript_Php_Jquery_Encoding_Base64 - Fatal编程技术网

PHP base64编码的响应在Javascript中未正确解码

PHP base64编码的响应在Javascript中未正确解码,javascript,php,jquery,encoding,base64,Javascript,Php,Jquery,Encoding,Base64,你好! 我想知道为什么我不能使用atob或btoa或自定义公式(如$.base64.decode())在javascript中解码base64响应 这就是我在php中所做的 $res = "Это тескт"; echo base64_decode($res); 这就是我在jquery中所拥有的 $.ajax({ type: "GET", url: "request.php", success: function(data){ $('#elementid').html($.base64.de

你好! 我想知道为什么我不能使用atob或btoa或自定义公式(如$.base64.decode())在javascript中解码base64响应

这就是我在php中所做的

$res = "Это тескт";
echo base64_decode($res);
这就是我在jquery中所拥有的

$.ajax({
type: "GET",
url: "request.php",
success: function(data){
$('#elementid').html($.base64.decode(data));
//or $('#elementid').html(atob(data)); // it gives the same result as the above one.
在页面上,我看到了以下内容

ЭÑо ÑеÑкÑ
Base64编码的数据如下所示

0K3RgtC+INGC0LXRgdC60YI=
如果我尝试使用从BASE64到UTF-8的不同web工具进行解码,我会看到正确的结果,但在使用上述函数的页面上看不到。请建议

更新:@logic unit感谢您的建议。我忘了提到结果页面index.php的标题中有以下内容

<?php
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
</head>

...

听起来像是页面上的字符编码问题

确保在HTML头部的元标记中指定了正确的编码类型


我找到了这个问题的答案。看起来atob和btoa处理UTF-8编码的能力很差

这在中进行了描述 第节中的解决方案2“Unicode问题”对我很有效


解决方案#2–使用TypedArrays和UTF-8

以及html页面元重写atob()和btoa(),看起来是这样的:??atob/btoa不喜欢特殊字符,但我认为拥有正确的字符集无助于。。。