2017-09-12 47 views
0

私はのコードをbase64エンコーディングC#を使って次のように作成しました。私はJavaScriptを使用して同じエンコードされた文字列を作成したいと思います。ここで"ISO-8859-1"エンコーディングin javascript

var isoEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); 
var a = isoEncoding.GetBytes(username + ":" + password); 
String encoded = System.Convert.ToBase64String(a); 
request.Headers.Add("Authorization", "Basic " + encoded); 

私はiconvを使用してstringをエンコード取得しようと、それはdifferenエンコードされた文字列を与えます。理由は何でしょうか?

var str = this.username+':'+this.password; 
var s = iconv.encode(str, 'ISO-8859-1'); 
var a = btoa(s.toString()); 
headers.append('Authorization', 'Basic ' + a); 
+0

は 'それが定義work.'しない '動作しません' です。 – mjwills

+0

's.toString()'の代わりに 's'を試しましたか? –

+0

@mjwills、申し訳ありません、私は編集しました。それは異なるエンコード文字列を与える。 –

答えて

1

使用この代わりのbtoa

var a = s.toString('base64'); 

buffer.toStringのデフォルトエンコーディングがUTF-8

+0

これはbtoaと同じです。問題は、エンコードされた文字列がC#1とは異なります。 –