2016-05-22 16 views
-1

私はjavascriptにこのfunctionbase64のデコード/エンコードURLを使用していますが、私は多く見てきたがBase64でエンコードされた文字列のURLはフレンドリー作り、Base64でエンコードされた文字列のURL

// if this is your Base64 encoded string 
var str = 'VGhpcyBpcyBhbiBhd2Vzb21lIHNjcmlwdA=='; 

// make URL friendly: 
str = str.replace(/\+/g, '-').replace(/\//g, '_').replace(/\=+$/, ''); 

// reverse to original encoding 
str = (str + '===').slice(0, str.length + (str.length % 4)); 
str = str.replace(/-/g, '+').replace(/_/g, '/'); 

jsfiddle

を使用するについて通知します

私はそれが+-\_を置き換えているだけですので、何がポイントです!なぜ私はすべきなの?

答えて

0

誤って解釈される可能性のある文字を置き換えない場合は、answerのように指摘してください。これにより、間違ったコンテンツが表示されたり、何も表示されなくなる可能性があります。説明のために

:URLのfollwing文字が予約されていて
:/? # [ ] @ : $ & ' () * + , ; =

などは、あなたがデータをエンコードするために65個の文字を必要とするこのanswerで指摘したが、uppercase-、小文字と数字の合計が唯一の62ですそれで3つの追加文字が必要です。+ = /です。これらの3つは予約されています。だからあなたはそれらを交換する必要があります。現在のところ、-については完全にはわかりません。

関連する問題