【发布时间】:2017-04-13 16:41:19
【问题描述】:
我有一个 Base 64 编码的字符串: "MTg2MTYyOTAuMTQ5MTg1NzAxMy4a1x1biIm69KFEf6yYRztKIW745NNj+qzzDAQoEOiBYw=="
当我尝试在 Android 中对它进行 Base 64 解码时,它会给出一些垃圾字符。
输出:18616290.1491857013.�[����D��G;J!n���c��(�c
预期:18616290.1491857013.[DG;J!nc(c
我使用的代码是:
String val =new String(Base64.decode(encodedString,Base64.DEFAULT));
有一些垃圾“?”人物介绍。我该如何摆脱它们?
谢谢。
【问题讨论】:
-
确保将 UTF-8 字符串传递给 base-64 编码器。我怀疑“垃圾字符”实际上应该在那里。当我复制并粘贴它时,您粘贴的“预期”值在
(和c之间有一个“垃圾字符”。基于an online base-64 encoder,该字符串的base-64编码比您问题中的编码要短得多。 -
已编辑。从预期输出中删除了垃圾字符。
-
该输出的 base-64 UTF-8 编码是
MTg2MTYyOTAuMTQ5MTg1NzAxMy5bREc7SiFuYyhj,基于 this encoder。这与您所拥有的编码值不同 - 并且大大缩短。同样,我认为问题在于您的编码,而不是 Andoid 执行解码。
标签: android encoding base64 decoding