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; | ||
|  | }; |