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