您的位置:威尼斯官方网站 > 威尼斯正规官网 > C# 按分裂的字节编码,通过字节数去截取字符串

C# 按分裂的字节编码,通过字节数去截取字符串

发布时间:2019-11-27 17:27编辑:威尼斯正规官网浏览(134)

     

            /// <summary>
            /// 按不同的字节编码,通过字节数去截取字符串
            /// 数据库UTF-8 1个数字、字母、英文符号算1个长度 1个中文、中文符号算3个长度
            /// </summary>
            /// <param name="origStr">需截取的字符串</param>
            /// <param name="bytesLength">需截取的字节长度</param>
            /// <param name="dstEncoding">截取的字节编码类型</param>
            /// <returns></returns>
            public static string GetSubString(string origStr, int bytesLength, Encoding dstEncoding)
            {
                if (origStr == null || origStr.Length == 0 || bytesLength < 0)
                    return "";
                int bytesCount = dstEncoding.GetByteCount(origStr);
                if (bytesCount > bytesLength)
                {
                    int readyLength = 0;
                    int byteLength;
                    for (int i = 0; i < origStr.Length; i++)
                    {
                        byteLength = dstEncoding.GetByteCount(new char[] { origStr[i] });
                        readyLength += byteLength;
                        if (readyLength == bytesLength)
                        {
                            origStr = origStr.Substring(0, i + 1);// + "..."; 加省略号
                            break;
                        }
                        else if (readyLength > bytesLength)
                        {
                            origStr = origStr.Substring(0, i);// + "..."; 加省略号
                            break;
                        }
                    }
                }
                return origStr;
            }
    

     

    sting newStr = GetSubString(origStr, bytesLength, Encoding.UTF8);
    

     

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:C# 按分裂的字节编码,通过字节数去截取字符串

    关键词:

上一篇:该援引摘自

下一篇:没有了