2

我有一个大问题:如果我做 base64_decode($string); 我没有相同的结果 在 php 中或者如果我做 Base64.decode(string); 在安卓。

示例:使用此字符串:WWhiZWWSZpNlaGSTnpljZQ==

在 php 中,结果是 Yhbee'f“ehd”ž™ce 。

在 android 中,结果是 Yhbee�f�ehd�ce

我认为存在编码问题,但我不知道在哪里,我的 PHP 服务器的输出是 ISO-8859-1,我不知道如何告诉 Base64.decode 使用这种类型的编码。

你能帮我吗。谢谢回答。

PS:我无法触摸 PHP 脚本。

4

3 回答 3

1

我认为这会对你有所帮助,不要使用.toString()use this 代替

var str = "WWhiZWWSZpNlaGSTnpljZQ=="
var decoded = String(Base64.decode(str, Base64.NO_WRAP))

我知道这个回答太晚了:-D

于 2020-10-17T19:59:17.457 回答
0

我认为解码很好,但 Android 没有应用正确的编码(可能是 utf-8)。

此内容是否出现在 HTML 页面上?如果是这样,您是否正确执行ISO-8859-1编码?

或者,您也可以切换到 UTF-8。

于 2013-03-29T14:42:05.107 回答
0

你应该试试这个:

 Base64.decode(content.getBytes("ISO-8859-1"), Base64.DEFAULT);

通过这个,您将输入字符串转换为content将从ISO-8859-1base64 解码的编码字节流。

于 2013-03-29T14:52:31.690 回答