2013-09-08 4 views
3

Gwt 클라이언트 측 코드를 사용하여 base64 문자열을 바이트 배열로 변환하는 방법은 무엇입니까?Base64 문자열을 Gwt로 변환

이 링크는 64 기수를 들어, 인코딩 디코딩을 표시하지만 당신은 두 가지 옵션이 배열 []

https://snipt.net/tweakt/gwt-base64/

+0

GWT 클라이언트 코드가 자바 스크립트로 크로스 컴파일되기 때문에 클라이언트 측에서이를 지원하는 클래스가 많지 않습니다. [이 링크는 ByteBuffer를 사용하여 제안합니다.] (http://stackoverflow.com/questions/14141432/bytebuffer-to-string-in-gwt)는 [클라이언트 용으로 에뮬레이션되지 않았습니다] (http://www.gwtproject.org /doc/latest/RefJreEmulation.html). 하지만 [여기에서 구현 된 맞춤 구현 된 ByteBuffer] (https://code.google.com/p/quake2-gwt-port/source/browse/src/com/google/gwt/corp/emul/java/)를 사용해 볼 수 있습니다. nio/ByteBuffer.java). 그러나 어쨌든 서버에서이 변환을 수행해야합니다. – Churro

답변

7

를 바이트하지 :

1 사용 네이티브 JS 방법 btoaatob을, 및 변환 자바 byte[] 배열에 반환 된 문자열 :

native String btoa(String b64) /*-{ 
    return btoa(b64); 
}-*/; 
... 
byte[] result = btoa(myBase64Data).getBytes(); 

2를 사용 Base64 알고리즘의 순수 자바 구현. 당신은 방금 GWT-user.jar에서에 포함 된 Base64Utils.java을 복사하고,이 클라이언트 패키지에 복사하고 그 방법을 사용할 수 있습니다

import my.project.namespace.client.Base64Utils; 
... 
byte[] result = Base64Utils.fromBase64(myBase64Data); 
일반적으로

내가 IE10, FF와 웹킷 브라우저를위한 # 1을 사용하고 #을 2 이전 IE 용.

+0

Base64Utils.java가 "URL-safe"인코딩을 사용하기 때문에 옵션 # 1과 # 2는 동일한 결과를 생성하지 않습니다. – dagge

관련 문제