code: public QrCodeEncoder addAutomatic(String message) {
  		// very simple coding algorithm. Doesn't try to compress by using multiple formats
  		if(containsKanji(message)) {
  			// split into kanji and non-kanji segments
  			int start = 0;
  			boolean kanji = isKanji(message.charAt(0));
  			for (int i = 0; i < message.length(); i++) {
  				if( isKanji(message.charAt(i))) {
  					if( !kanji ) {
  						addAutomatic(message.substring(start,i));
  						start = i;
  						kanji = true;
  					}
  				} else {
  					if( kanji ) {
  						addKanji(message.substring(start,i));
  						start = i;
  						kanji = false;
  					}
  				}
  			}
  			if( kanji ) {
  				addKanji(message.substring(start,message.length()));
  			} else {
  				addAutomatic(message.substring(start,message.length()));
  			}
  			return this;
  		} else if( containsByte(message)) {
  			return addBytes(message);
  		} else if( containsAlphaNumeric(message)) {
  			return addAlphanumeric(message);
  		} else {
  			return addNumeric(message);
  		}
  	}
docs: Select the encoding based on the letters in the message. A very simple algorithm is used internally.