首页 > 解决方案 > PHP - 使用 UTF-16 模式编码 base64

问题描述

我正在尝试使用 UTF-16 模式对 base64 中的字符串进行编码。

为了测试,我正在使用这个在线工具,效果很好,但我需要在 php 代码中使用它:

https://8gwifi.org/Base64Functions.jsp

设置配置: 编码 - 架构 UTF-16

此刻我尝试了这个:

$str = '/v8AVABoAGkAcwAgAGkAcwAgAGEAbgAgAGUAbgBjAG8AZABlAGQAIABzAHQAcgBpAG4AZw==';
$str = base64_decode($str);
$str = iconv("UTF-16", "ISO-8859-1", $str);
echo $str.PHP_EOL.PHP_EOL;

//$str = 'This is an encoded string';
$str = iconv("ISO-8859-1", "UTF-16", $str);
$str = base64_encode($str);

echo $str;

第一次转换效果很好。采用编码字符串,正确解码,一切正常。

但是反向转换会输出:

//5UAGgAaQBzACAAaQBzACAAYQBuACAAZQBuAGMAbwBkAGUAZAAgAHMAdAByAGkAbgBnAA==

女巫不一样。

非常感谢。

标签: phpbase64utf-16

解决方案


/$str = '这是一个编码字符串';

加密和解密工作正常,没有 php 版本的任何外部支持

7.2.5

请试试


推荐阅读