备忘

42 阅读1分钟
private void ChineseDisplay(byte[] dataBuffer,ref int i)
        {
            byte newData = dataBuffer[i];
            byte[] logArr;

            switch (encodingType)
            {
                case RtkEncodingType.UTF8:
                    int count = AGGlogCollect.Count;
                    for (int index = 0; index < count; index++)
                    {
                        if ((AGGlogCollect[index] >= 0xf0) && ((AGGlogCollect.Count - 1 - index) < 4))
                        {
                            for (int m = 0; m < 4 + 1 + index - AGGlogCollect.Count; m++)
                            {
                                AGGlogCollect.Add(dataBuffer[i + 3 + m]);
                            }
                        }
                        if ((AGGlogCollect[index] >= 0xe0) && ((AGGlogCollect.Count - 1 - index) < 3))
                        {
                            for (int m = 0; m < 3 + 1 + index - AGGlogCollect.Count; m++)
                            {
                                AGGlogCollect.Add(dataBuffer[i + 3 + m]);
                            }
                        }
                        if ((AGGlogCollect[index] >= 0xc0) && ((AGGlogCollect.Count - 1 - index) < 2))
                        {
                            for (int m = 0; m < 2 + 1 + index - AGGlogCollect.Count; m++)
                            {
                                AGGlogCollect.Add(dataBuffer[i + 3 + m]);
                            }
                        }
                    }
                    logArr = AGGlogCollect.ToArray();
                    str = System.Text.Encoding.UTF8.GetString(logArr);
                    break;
                default:
                    logArr = AGGlogCollect.ToArray();
                    str = System.Text.Encoding.ASCII.GetString(logArr);
                    break;
            }
        }