質問

見URL安全基64コがその場で発音を確認することができる非常に非標準のものです。ものの豊富な数建機能PHPはありませんが一のための安全基64エンコーディングです。のマニュアルページ base64_encode(), のコメントを利用する機能を包み込む strtr():

function base64_url_encode($input)
{
     return strtr(base64_encode($input), '+/=', '-_,');
}

のPerlモジュールまたこのエリア MIME::Base64::URLSafe ()を行い、以下の置換を内部で:

sub encode ($) {
    my $data = encode_base64($_[0], '');
    $data =~ tr|+/=|\-_|d;
    return $data;
}

とは異なりの数に上るこのPerl版滴の'='(equals)文字を完全に置換えではなく、い','(カンマ)としてPHPいます。Equalsはパディングの文字を必要とするPerlモジュールに置き換えてはならなdecodeが、この差の二つの実装には相容れないものがある。

最後に、Pythonの機能 urlsafe_b64encode(s) の'='パディング周辺の落人がけ この機能 外側のパディングを示す目立つようにGoogle結果 'python base64url安全":

from base64 import urlsafe_b64encode, urlsafe_b64decode

def uri_b64encode(s):
    return urlsafe_b64encode(s).strip('=')

def uri_b64decode(s):
    return urlsafe_b64decode(s + '=' * (4 - len(s) % 4))

の意欲があるからでている文字列に含めることができなくURLの一層のエンコードするにはditchingまたは翻訳の文字が'+','/'、'='.からないのではないで定義された基準 ここに重要なのは正しい。

役に立ちましたか?

解決

がなされることができるので、 RFC3548, 第4, Base64エンコーディングのURLとファイル名を安全に文字:

このエンコーディングは技術的に同一の 一つ前に、 62:nd63:rd文字として 表-2に示す.

+/ 置換する必要があるよ - (minus)_ (understrike) ます。他の互換性のない書きに包まれたように適合しRFC3548.

ることに注意する必要はあの文字列をURLエンコードします。 (pad) = 文字が好きるURLエンコーディングの +/ 文字から標準のbase64のアルファベット.

他のヒント

ないと思うは間違っています。でも一番人気のエンコーディング

'+/=' => '-_.'

これにより幅広く利用されている、Google、YahooいY64).最url-安全版エンコーダを使ってJava、Ruby"をサポートの文字セットと共に機能します。

からの出力のbase64_encodeをurlencode.例えば:

function base64_encode_url( $str )
{
    return urlencode( base64_encode( $str ) );
}

だから、正しい方いて適切なURLエンコードに対して任意に置換文字です。第base64-符号化データ、さらに特殊文字エンコードのように"="を適切にURLエンコーディング( %<code>).

てみましょに包まれる urlencode()?文書 こちらです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top