0

Base64 に変換されるエンコードされた文字列であるクエリ文字列パラメーターがあります。そのパラメーターは、電子メール内のリンクに埋め込まれます。電子メールのリンクをクリックすると、クエリ文字列パラメーターに含まれるすべての + 文字がスペース文字に置き換えられています。その他の違いはありません。文字列をサニタイズし、スペースを効果的にプラスに置き換えるために呼び出すことができるメソッドはありますか。私は現在、少し太ったハックである文字列の置換を行っています。何かが交換の原因になっていますが、何が原因かわかりません。誰かが前にこのようなものに出くわしたことがありますか?

例 - ブラウザーの URL 内のクエリ文字列パラメーター値:

yo3rZZbZyG4UCN+L3pcTYJXmWEggnkW1qcyJk2uBrVTtGUSKIlBcJ8e9TSx8BHjHJv0JhI8H6LbIqUl+3lA7qn+lOgpSi3rCGN4bm5moOWcCA449C1Z3zj7J1FkOXH2HMox4VUZ7x7fF65MRwuBBmw==

コントローラ アクション内の文字列の値:

yo3rZZbZyG4UCN L3pcTYJXmWEggnkW1qcyJk2uBrVTtGUSKIlBcJ8e9TSx8BHjHJv0JhI8H6LbIqUl 3lA7qn lOgpSi3rCGN4bm5moOWcCA449C1Z3zj7J1FkOXH2HMox4VUZ7x7fF65MRwuBBmw==

4

3 に答える 3

2

base64 文字列をリンクに URL エンコードする必要があるため、次のようになります。

yo3rZZbZyG4UCN%2BL3pcTYJXmWEggnkW1qcyJk2uBrVTtGUSKIlBcJ8e9TSx8BHjHJv0JhI8H6LbIqUl%2B3lA7qn%2BlOgpSi3rCGN4bm5moOWcCA449C1Z3zj7J1FkOXH2HMox4VUZ7x7fF65MRwuBBmw%3D%3D

HttpUtility.UrlEncode(base64str).NET またはencodeURIComponent(base64str)JavaScript で

于 2013-01-11T12:03:15.907 に答える
1

System.Web.HttpServerUtility.UrlTokenEncode を使用できます ( http://brockallen.com/2014/10/17/base64url-encoding/#commentsから)

于 2014-11-20T14:59:40.800 に答える
0

これは、+ 記号が別のパラメーターが続くことを示すマーカーとして解釈されるためです。これが、めちゃくちゃになっている理由です。サーバーに渡す前に、文字列を URL エンコードする必要があります。

于 2013-01-11T12:12:57.117 に答える