2016-06-07 107 views
0

我有查询参数编码的btoa javascript函数。当点击url时,请求在Java控制器内调用的函数,我想解码Query参数(它是从javascript btoa编码的)。我试过BASE64DecoderBase64.getDecoder(),但无法获得适当的价值。有没有其他方法可以这样做?JavaScript中的类似Java函数像atob

爪哇控制器

@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"; 
    } 

的JavaScript

var email = document.getElementById("email").value; 
var encodedEmail = btoa(email); 

字符串进行编码:[email protected]

编码字符串:ZGVtb0BkZW1vLmNvbQ ==

+0

如果您可以发布一些示例字符串的Javascript Base64编码的确切示例,我们可以确认正确性。 – OldCurmudgeon

+0

我已更新我的问题与示例 –

回答

5

的Java 8拥有全新Base64包:

public void test() { 
    String s = "[email protected]"; 
    String encoded = new String(Base64.getEncoder().encode(s.getBytes())); 
    String decoded = new String(Base64.getDecoder().decode(encoded)); 
    System.out.println("S: " + s + " -> " + encoded + " -> " + decoded); 
} 

打印

S: [email protected] -> ZGVtb0BkZW1vLmNvbQ== -> [email protected] 

还有其他编码器/解码器对 - 您可能会发现mime encoder适合您的需求。

+0

伟大的,它工作正常。谢谢。 –

相关问题