1234567891011121314151617181920212223242526272829303132333435363738 |
- // ab2str = function ab2str(buf) {
- // return String.fromCharCode(new Uint8Array(buf));
- // }
- bin2str = function bin2str(bufView) {
- var length = bufView.length;
- var result = '';
- for (var i = 0; i<length; i+=65535) {
- var addition = 65535;
- if(i + 65535 > length) {
- addition = length - i;
- }
- try {
- // this fails on phantomjs due to old webkit bug; hence the try/catch
- result += String.fromCharCode.apply(null, bufView.subarray(i,i+addition));
- } catch (e) {
- var dataArray = [];
- for (var j = i; j < i+addition; j++) {
- dataArray.push(bufView[j]);
- }
- result += String.fromCharCode.apply(null, dataArray);
- }
- }
- return result;
- };
- ab2str = function ab2str(buffer) {
- return bin2str(new Uint8Array(buffer));
- };
- str2ab = function str2ab(str) {
- var buf = new ArrayBuffer(str.length);
- var bufView = new Uint8Array(buf);
- for (var i=0, strLen=str.length; i<strLen; i++) {
- bufView[i] = str.charCodeAt(i);
- }
- return buf;
- };
|