【发布时间】:2008-11-14 04:48:27
【问题描述】:
如何在 PHP 中解码 base64 编码的消息? 我知道如何使用 PHP_base64_decode 函数,但我想知道如何编写 little endian 部分,如下面的代码,它是带有 little endian 的 base64 代码:(如何在 php 中编写 little endian 部分)
原始 Base64 内容(由原始海报发布):
【问题讨论】:
如何在 PHP 中解码 base64 编码的消息? 我知道如何使用 PHP_base64_decode 函数,但我想知道如何编写 little endian 部分,如下面的代码,它是带有 little endian 的 base64 代码:(如何在 php 中编写 little endian 部分)
原始 Base64 内容(由原始海报发布):
【问题讨论】:
使用base64_decode() 函数。
【讨论】:
Base64 将字节流转换为可打印字符。没有什么可以出错的。
'Little-endian' 描述了将数字转换为字节序列的两种方式之一:little-endian = 最低有效字节优先。 Big-endian = 最高有效字节在前。 UTF-8 是将字符串编码为字节流,并且要应用字节顺序的概念。 然而,UTF16 将文本编码为 16 位字,并且有两种将字编码为字节的方法,并且 UTF16 有两种形式:UTF16LE(小端)和 UTF16BE(大端)。相同的字节顺序概念也适用于 UTF32,但这不是一种常见的格式。
如果小端法是指 UTF16LE,那么您必须决定要将字符串重新编码为哪种格式(可能是 UTF-8)。
您可以使用此功能: mb_convert_encoding($input, 'UTF-8', 'UTF-16LE')[1][2]
如果小端是指数字,那么您必须在将字节转换为数字时指定字节顺序。
[1]http://cz.php.net/manual/en/function.mb-convert-encoding.php
[2]http://cz.php.net/manual/en/mbstring.supported-encodings.php
【讨论】: