URLに設定するパラメータを、
URLセーフな形でBase64エンコードしたいと思い、
java.util.Base64
の Base64.getUrlEncoder().encodeToString()
というメソッドを使用しました。
すると、=記号が末尾に挿入されていました。
=記号はURLアンセーフなのではないか?と思い、
ソースコードを調べてみたところ、
下記の様な記述がありました。
java
1/** 2* It's the lookup table for "URL and Filename safe Base64" as specified 3* in Table 2 of the RFC 4648, with the '+' and '/' changed to '-' and 4* '_'. This table is used when BASE64_URL is specified. 5*/ 6private static final char[] toBase64URL = { 7'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 8'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 9'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 10'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 11'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_' 12};
コメント部分を和訳すると、
これは、RFC 4648の表2で指定されている「URLおよびファイル名セーフBase64」のルックアップテーブルで、 「+」と「/」が「-」と「_」に変更されています。 このテーブルは、BASE64_URLが指定されている場合に使用されます。
とありました。
「=は変換していない」ということは読み取れました。
ちなみに末尾に=があっても、問題なくパラメータのやり取りは出来ています。
これって問題ないのでしょうか?
何卒よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。