You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP与JavaScript将十进制转base64结果不一致问题咨询

差异原因

  • 两端的输入处理逻辑完全不同:
    1. JavaScript端是将68、98、7三个十进制数作为独立字节的ASCII码值,先转换为对应的3字节原始字节序列,再对字节序列做Base64编码,最终得到结果RGIH。
    2. 你写的PHP代码逻辑存在错误:floatval('68 98 7')会把带空格的字符串转换为浮点数,遇到非数字的空格后直接截断,最终得到的实际值仅为68,转换为字符串是"68",对该字符串做Base64编码自然得到结果Njg=,和预期逻辑完全不匹配。

PHP端正确实现

如果需要得到和JavaScript一致的结果,需要先将三个十进制值转为对应的ASCII字符拼接为原始字符串,再做编码:

// 按十进制ASCII码生成对应原始字节串
$raw = chr(68) . chr(98) . chr(7);
echo base64_encode($raw); // 输出:RGIH

内容的提问来源于stack exchange,提问作者Ridwan Skaterocks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:39:04