回答編集履歴

2

RFCへのリンク追加

2017/01/10 04:54

投稿

ikedas
ikedas

スコア4227

test CHANGED
@@ -1,6 +1,6 @@
1
1
  (回答が間違っていたので全面修正しました)
2
2
 
3
- ここで使われているのはオリジナルの[BASE64符号化](https://ja.wikipedia.org/wiki/Base64)ではなく「BASE64URL符号化」という変型版のようです。
3
+ ここで使われているのはオリジナルの[BASE64符号化](https://ja.wikipedia.org/wiki/Base64)ではなく「BASE64URL符号化」という変型版のようです ([RFC 4648](https://tools.ietf.org/html/rfc4648#), §5)
4
4
 
5
5
  BASE64URLでは、BASE64の「`+`」「`/`」の代わりに「`-`」、「`_`」を使います。
6
6
 

1

回答が間違っていたので全面修正しました

2017/01/10 04:54

投稿

ikedas
ikedas

スコア4227

test CHANGED
@@ -1,8 +1,8 @@
1
- 変換に用いているデータが、いろいろおかいです。
1
+ (回答が間違っていたので全面修正ました)
2
2
 
3
- - BASE64符号化したデータには出現し得ない「`-`」や「`_`」が含まれています。
4
- - デコードした結果は文字コードがUTF-8のテキストのようですが、UTF-8ではありえないバイトの並びが現れます。
5
- - かろうじて正しくデコードきる部分も、もとのテキストを細切にしランダムにつなぎあわせたようになってて、意味の取れ文になっていません (もともとテクスト宮沢賢治『セロ弾きゴーシュ』ではないかと思われま)
3
+ ここ使われているのはオリジナル[BASE64符号化](https://ja.wikipedia.org/wiki/Base64)ではなく「BASE64URL符号化」とう変型版のようです。
6
4
 
7
- まず同じメールを他方法で取得・閲覧して正しく表示されるか確認してみて下さ。結果がわかりしたらご質問に追記下さい
5
+ BASE64URLではBASE64「`+`」「`/`」の代わりに「`-`」「`_`」使いま
8
6
 
7
+ ですので、これらの文字をオリジナルのものに置換してからbase64\_decode()で変換すれば、正しくデコードできます。
8
+