2017-09-12 11 views
0

C#을 사용하여 다음 형식으로 string base64 인코딩을 만들었습니다. JavaScript를 사용하여 동일한 인코딩 된 문자열을 만들고 싶습니다. "ISO-8859-1"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# 하나와 다르다는 것입니다. –