2011-04-22 14 views
4

예를 들어, 64 비트 부호있는 정수를 base64로 인코딩하려는 경우, 가능한 경우 Javascript에서 어떻게 수행 할 수 있습니까?Javascript를 사용하여 임의의 바이트/데이터를 base64 형식으로 인코딩하는 방법은 무엇입니까?

분명히하기 위해 데이터의 문자열/문자열 표현이 아닌 실제 비트/바이트 데이터를 인코딩하려고합니다.

e.e. 10 진수의 정수 15는 2 진수로 0000 1111과 동일하며, base64 형식의 Dw ==와 같습니다.

정수 15의 문자열 표현을 인코딩하고 싶지 않습니다. 비교를 위해 base64에서 문자열 "15"를 인코딩하면 실제로 0011 0001 0011 0101이 인코딩되어 MTU = base64 형식이됩니다 (이것은 window.atob()의 기능입니다).

+0

왜 이렇게해야합니까? 나는. 누가 base64로 인코딩 된 버전의 데이터를 사용합니까? 정수의 바이너리 표현이 필요한 기본적인 요구 사항은 무엇입니까? – ewh

+0

"64 비트"데이터를 요청했습니다. 따라서 15는 실제로 '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001111'이고 8 비트 예제에서는''DW == "'대신에" "AAAAAAAAAA8 ="'로 인코딩됩니다. –

답변

3

먼저 다른 표준 B64 인코더 btoa 또는 하나를 사용 후, 문자열로 변환 :

window.btoa(String.fromCharCode(15)); // Dw== 
2

지원하는 브라우저에서 window.btoa()을 사용할 수 있으며 다른 브라우저에서는 this encoder을 사용할 수 있습니다. 당신이 'window.btoa'로 통과 아무것도

당신은 모든 것을 직접 작성해야 할거야 --edit

먼저 문자열로 변환되는 것입니다. This answer은 시작하기에 좋은 장소 일 수 있습니다. Gears가 중단되었지만 HTML5/W3C File API에는 관련 기능이 많이 있는데 여기에는 some experimental implementations이 있습니다.

+0

문자열이 아닌 임의의 데이터를 말했습니다. – Oaa

+0

@Oaa 아, 네. 그런 다음 조금 더 복잡해집니다. – robertc

관련 문제