public static string scan() { ReadDataSize[0] = 0; Array.Clear(barcodeData, 0, barcodeData.Length); reslut = CommonClass.SoftDecoding_Scan(iTimeout, barcodeData, 2048, ReadDataSize); if (reslut) { leng = (int)(ReadDataSize[0]) - 2;//Convert.ToInt32(ReadDataSize[0])-2; if (leng >= 2048) { MessageBox.Show("条码长度超长!"); return(""); } try { int n = 0; if (n == 0) { //从第三位开始取内容(第一位为条码类型,第二位为长度) data = System.Text.Encoding.UTF8.GetString(barcodeData, 2, leng); } else if (n == 1) { data = System.Text.Encoding.GetEncoding("Windows-1252").GetString(barcodeData, 2, leng); } else if (n == 2) { data = System.Text.Encoding.GetEncoding("GB2312").GetString(barcodeData, 2, leng); } else if (n == 3) { data = System.Text.Encoding.Unicode.GetString(barcodeData, 2, leng); } else { data = System.Text.Encoding.UTF8.GetString(barcodeData, 2, leng); } } catch (Exception ex) { MessageBox.Show("扫描失败: " + ex.Message); return(""); } return(data); } else { return(""); } }