forked from sheetjs/sheetjs
38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
|
// http://stackoverflow.com/a/5913807
|
||
|
|
||
|
if(/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {
|
||
|
var IEBinaryToArray_ByteStr_Script =
|
||
|
"<!-- IEBinaryToArray_ByteStr -->\r\n"+
|
||
|
"<script type='text/vbscript'>\r\n"+
|
||
|
"Function IEBinaryToArray_ByteStr(Binary)\r\n"+
|
||
|
" IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
|
||
|
"End Function\r\n"+
|
||
|
"Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
|
||
|
" Dim lastIndex\r\n"+
|
||
|
" lastIndex = LenB(Binary)\r\n"+
|
||
|
" if lastIndex mod 2 Then\r\n"+
|
||
|
" IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
|
||
|
" Else\r\n"+
|
||
|
" IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
|
||
|
" End If\r\n"+
|
||
|
"End Function\r\n"+
|
||
|
"</script>\r\n";
|
||
|
|
||
|
// inject VBScript
|
||
|
document.write(IEBinaryToArray_ByteStr_Script);
|
||
|
}
|
||
|
|
||
|
var convertResponseBodyToText = function (binary) {
|
||
|
var byteMapping = {};
|
||
|
for ( var i = 0; i < 256; i++ ) {
|
||
|
for ( var j = 0; j < 256; j++ ) {
|
||
|
byteMapping[ String.fromCharCode( i + j * 256 ) ] =
|
||
|
String.fromCharCode(i) + String.fromCharCode(j);
|
||
|
}
|
||
|
}
|
||
|
var rawBytes = IEBinaryToArray_ByteStr(binary);
|
||
|
var lastChr = IEBinaryToArray_ByteStr_Last(binary);
|
||
|
return rawBytes.replace(/[\s\S]/g,
|
||
|
function( match ) { return byteMapping[match]; }) + lastChr;
|
||
|
};
|