/// <summary> /// Use to recognise which mode and encoding name to use for input string. /// </summary> /// <param name="content">input string content</param> /// <param name="encodingName">Output encoding name</param> /// <returns>Mode and Encoding name</returns> public static RecognitionStruct Recognise(string content) { int contentLength = content.Length; int tryEncodePos = ModeEncodeCheck.TryEncodeKanji(content, contentLength); if (tryEncodePos == -2) { return(new RecognitionStruct(Mode.EightBitByte, QRCodeConstantVariable.UTF8Encoding)); } else if (tryEncodePos == -1) { return(new RecognitionStruct(Mode.Kanji, QRCodeConstantVariable.DefaultEncoding)); } tryEncodePos = ModeEncodeCheck.TryEncodeAlphaNum(content, 0, contentLength); if (tryEncodePos == -2) { return(new RecognitionStruct(Mode.Numeric, QRCodeConstantVariable.DefaultEncoding)); } else if (tryEncodePos == -1) { return(new RecognitionStruct(Mode.Alphanumeric, QRCodeConstantVariable.DefaultEncoding)); } string encodingName = EightBitByteRecognision(content, tryEncodePos, contentLength); return(new RecognitionStruct(Mode.EightBitByte, encodingName)); }