2016-06-07 24 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

偉大的,它工作正常。謝謝。 –

相關問題