HTTP リクエストから次のバイナリ ストリームを受信しています。
HTTP リクエスト
Document.get({id: $scope.documentId}, function(stream){
});
アンギュラーファクトリー
.factory('Document', ['$resource', 'DOCUMENTS_CONFIG',
function($resource, DOCUMENTS_CONFIG) {
return $resource(DOCUMENTS_CONFIG.DETAIL_URL, {}, {
get: {
method: 'GET',
params: {},
url: DOCUMENTS_CONFIG.DETAIL_URL,
isArray: false
}
});
}
]);
応答
console.log(stream)
これを Uint8Array に変換する必要があります。私はそれをbas64に変換しようとしました
// Convert Binary Stream To String
var dataString = JSON.stringify(stream);
// Convert to Base 64 Data
var base64Data = window.btoa(unescape(encodeURIComponent(dataString)));
これを実行すると、「不正な形式の uri 例外」というエラーが表示されます。window.btoa(dataString) も試しましたが、「'ウィンドウ' で 'btoa' を実行できませんでした: エンコードする文字列には、Latin1 範囲外の文字が含まれています。」
これを Uint8Array に変換するにはどうすればよいですか?