首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

依据字符长度截取而非字节长度截取的方法

2012-08-16 
根据字符长度截取而非字节长度截取的方法?public static string GetChStringByLength(string s, int len){

根据字符长度截取而非字节长度截取的方法

?

public static string GetChStringByLength(string s, int len)        {            byte[] data = Encoding.GetEncoding("GB18030").GetBytes(s);            //算出需要截取的byte长度            len *= 2;            //如果长度小于等于指定长度则直接返回            if (data.Length <= len)            {                return s;            }            //判断最后一个字节是否为汉字,如果是则截取掉最后一个byte            int chByteLen = 0; //中文字节的长度            for (int i = len - 1; i >= 0; i--)            {                if (data[i] >= 128)                {                    //记录中文字节长度                    chByteLen++;                }                else                {                    break;                }            }            //如果是奇数则截取掉最后一个byte            if (chByteLen % 2 == 1)            {                len--;            }            byte[] newData = new byte[len];            Array.Copy(data, newData, len);            return Encoding.GetEncoding("GB18030").GetString(newData);        }

热点排行