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