将base64编码的字符串解码并对所有特殊字符进行编码

3
我有一个Java类,使用GSON将其转换为字符串。由于某种原因,字符串被base64编码(不必深究: ))。当我解码它时,在JSON中丢失了所有的{和""}字符。
例如:{"name":"ABC"} 解码并重新编码后变成nameABC
我想要恢复我的旧数据,也就是我想要 {"name:"ABC"} 返回
String json = "{\"name\":\"ABC\"}";
byte en[] = android.util.Base64.decode(json,Base64.NO_WRAP);
String st = android.util.Base64.encodeToString(en,Base64.NO_WRAP);

有时候,像上面这样简单的内容却会丢失。

请帮忙。

1个回答

1
您无法使用 { 和 " 这样的字符进行 Base64 编码和解码,因为 Base64 只包含 64 个可转换为二进制的字符,可以尝试使用支持 UTF-8 的编码方法,如 URLDecoderUTF-8。请参考this

尝试过了,但不起作用 :( 也尝试了其他的,如URL_SAFE等等。 - Ssdevapp
输出结果为 nameABA=,使用 Base64.DEFAULT。 - Ssdevapp
是的,请不要使用Base64。 - Mohamed Embaby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接