类似Java函数,如javascript中的atob

Kru*_*cha 3 javascript java base64

我有由btoajavascript函数编码的Query参数.当点击url时,在java控制器中调用请求函数,我想解码Query参数(从javascript btoa编码).我曾尝试BASE64DecoderBase64.getDecoder(),但没能获得应有的价值.有没有其他方法可以这样做?

Java控制器

@RequestMapping(value = "decode/{email}", method = RequestMethod.GET)
    public String decodeEmail(Model model, @PathVariable String email){
        Decode decode = new Decode();
        decode.setEmail(email);
        decodeService.save(decode);
        return "decode/List";
    }
Run Code Online (Sandbox Code Playgroud)

JavaScript的

var email = document.getElementById("email").value;
var encodedEmail = btoa(email);
Run Code Online (Sandbox Code Playgroud)

要编码的字符串:demo@demo.com

编码字符串:ZGVtb0BkZW1vLmNvbQ ==

Old*_*eon 16

Java 8有一个新的Base64包:

public void test() {
    String s = "demo@demo.com";
    String encoded = new String(Base64.getEncoder().encode(s.getBytes()));
    String decoded = new String(Base64.getDecoder().decode(encoded));
    System.out.println("S: " + s + " -> " + encoded + " -> " + decoded);
}
Run Code Online (Sandbox Code Playgroud)

版画

S: demo@demo.com -> ZGVtb0BkZW1vLmNvbQ== -> demo@demo.com
Run Code Online (Sandbox Code Playgroud)

还有其他编码器/解码器对 - 您可以找到适合您需要的mime编码器.

  • `String编码= new String(Base64.getEncoder().encode(s.getBytes()));`可以替换为`String编码= Base64.getEncoder().encodeToString(s.getBytes());` (2认同)