【问题标题】:Android PHP Base64 decode with different resultsAndroid PHP Base64 解码结果不同
【发布时间】:2013-03-20 06:52:26
【问题描述】:

我有一个大问题:如果我执行 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 脚本。

【问题讨论】:

标签: php android base64


【解决方案1】:

我认为这会对你有所帮助,不要使用.toString(),而是使用这个

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

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

【讨论】:

    【解决方案2】:

    你应该试试这个:

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

    由此您将输入字符串content 转换为ISO-8859-1 将从base64 解码的编码字节流。

    【讨论】:

    • 伙计们,值得注意的是 Base64.DEFAULT 标志将在结果末尾附加 '\n'。要避免这种行为,请使用 Base64.NO_WRAP
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多