c#的中英文混合字符串截取 public static string SubString(string inputString, int byteLength)

  /// <summary>
        /// c#的中英文混合字符串截取(区分中英文)
        /// </summary>
        /// <param name="inputString"></param>
        /// <param name="byteLength">要输出的字节长度</param>
        /// <returns></returns>
        public static string SubString(string inputString, int byteLen)
        {
            int count=Encoding.UTF8.GetByteCount(inputString);
            if (count <= byteLen * 2)
            {
                return inputString;
            }
            ASCIIEncoding ascii = new ASCIIEncoding();
            int tempLen = 0;
            string tempString = "";
            byte[] s = ascii.GetBytes(inputString);
            for (int i = 0; i < s.Length; i++)
            {
                if ((int)s[i] == 63)
                {
                    tempLen += 2;
                }
                else
                {
                    tempLen += 1;
                }
                tempString += inputString.Substring(i, 1);
                if (tempLen >= byteLen * 2)
                    break;
            }
            return tempString;
        }

原文地址:https://www.cnblogs.com/DTWolf/p/4670593.html