gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:43:53 27 4
gpt4 key购买 nike

美好的一天!我想知道为什么我无法使用 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 的不同网络工具进行解码,我会看到正确的结果,但在我使用上述功能的页面上却看不到。请建议。

更新:@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>

最佳答案

我找到了问题的答案。 atob 和 btoa 似乎无法很好地处理 UTF-8 编码。

它在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding中有描述“Unicode 问题” 部分的解决方案 2 对我来说效果很好。

解决方案 #2 – 使用 TypedArrays 和 UTF-8 重写 atob() 和 btoa()

关于javascript - PHP base64 编码响应未在 Javascript 中正确解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19162106/

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