2014-04-23 14 views
7

Tôi nhận được một "java.lang.IllegalArgumentException: bad cơ sở-64" trên đoạn mã sau:Bad cơ sở-64 lỗi

byte[] msgBytes = Base64.decode(msgStr, Base64.NO_WRAP); 

msgString là một String, và ngay trước khi dòng này, tôi kiểm tra giá trị của msgStr và nó là "fl-ILw ==". Có gì sai không?

Cảm ơn.

Trả lời

6

Theo RFC 4648 (http://www.rfc-editor.org/rfc/rfc4648.txt) ký tự '-' không phải là ký tự Base64 hợp lệ nhưng mặt khác là hợp lệ cho "URL và tên tệp an toàn Base 64 Alphabet".

Vì vậy, bạn có thể sử dụng Base64.URL_SAFE tùy thuộc vào định dạng mong muốn của chuỗi.

+1

Tôi hiểu. Cảm ơn. Tôi đã thay thế '/' và '+' thành '_' và '-' tương ứng để giữ an toàn cho việc đặt tên tệp. Đó phải là nó sau đó. Cảm ơn! – user1118764

Các vấn đề liên quan