34 lines
		
	
	
		
			850 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			850 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var charenc = {
							 | 
						||
| 
								 | 
							
								  // UTF-8 encoding
							 | 
						||
| 
								 | 
							
								  utf8: {
							 | 
						||
| 
								 | 
							
								    // Convert a string to a byte array
							 | 
						||
| 
								 | 
							
								    stringToBytes: function(str) {
							 | 
						||
| 
								 | 
							
								      return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Convert a byte array to a string
							 | 
						||
| 
								 | 
							
								    bytesToString: function(bytes) {
							 | 
						||
| 
								 | 
							
								      return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Binary encoding
							 | 
						||
| 
								 | 
							
								  bin: {
							 | 
						||
| 
								 | 
							
								    // Convert a string to a byte array
							 | 
						||
| 
								 | 
							
								    stringToBytes: function(str) {
							 | 
						||
| 
								 | 
							
								      for (var bytes = [], i = 0; i < str.length; i++)
							 | 
						||
| 
								 | 
							
								        bytes.push(str.charCodeAt(i) & 0xFF);
							 | 
						||
| 
								 | 
							
								      return bytes;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Convert a byte array to a string
							 | 
						||
| 
								 | 
							
								    bytesToString: function(bytes) {
							 | 
						||
| 
								 | 
							
								      for (var str = [], i = 0; i < bytes.length; i++)
							 | 
						||
| 
								 | 
							
								        str.push(String.fromCharCode(bytes[i]));
							 | 
						||
| 
								 | 
							
								      return str.join('');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = charenc;
							 |