不区分中英文截断字符串

public static string GetString(this HtmlHelper htmlHelper, string s, int l, string endStr)

{

string temp = s.Substring(0, (s.Length < l + 1) ? s.Length : l + 1);

byte[] encodedBytes = Encoding.ASCII.GetBytes(temp);

string outputStr = string.Empty;

int count = 0;

for (int i = 0; i < temp.Length; i++)

{

if (encodedBytes[i] == 63)

{

count += 2;

}

else

{

count += 1;

}

if (count <= l - endStr.Length)

{

outputStr += temp.Substring(i, 1);

}

else if (count > l)

{

break;

}

}

if (count <= l)

{

outputStr = temp;

endStr = string.Empty;

}

outputStr += endStr;

return outputStr;

}

时间: 2024-07-30 22:25:12

不区分中英文截断字符串的相关文章

javascript计算字符串的长度区分中英文

javascript计算字符串的长度区分中英文:计算字符串的长度是常有的操作,代码如下: var str="I love 蚂蚁部落"; console.log(str.length); 使用length计算字符串的长度,得出的结果是字符串中字符的个数,而在实际应用中可能需要计算字符串所占有的字节长度,一个汉字占两个字节,一个英文字符占一个字节,代码如下: var zfl={}; zfl.GetLength=function(str){ var realLength=0,len=str.

数据转换||数据判断||数据操作||日期||字符串长度区分中英文截取

MXS&Vincene  ─╄OvЁ  &0000016 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好,但是绝大部分人是死在明天晚上,只有那些真正的英雄才能见到后天的太阳. MXS&Vincene  ─╄OvЁ:We're here to put a dent in the universe. Otherwise why else even be here? 正文>>>>>

截取文本,区分中英文字符,中文算两个长度,英文算一个长度

/// <summary>    /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度   /// </summary>   /// <param name="str">待截取的字符串</param>   /// <param name="length">需计算长度的字符串</param>   /// <returns>string</returns>   p

一个包含中英文的字符串如何获得它的自然长度

$str = 'Hello world!'; echo strlen($str); // 输出12 然而在PHP自带的函数中,strlen及mb_strlen都是通过计算字符串所占字节数来计算长度的,在不同的编码情况下,中文所占的字节数是不同的.在GBK/GB2312下,中文字符占2个字节,而在UTF-8下,中文字符占3个字节. $str = '你好,世界!'; echo strlen($str); // GBK或GB2312下输出12,UTF-8下输出18 而我们在判断字符串长度时往往需要判断

java按给定字节数截取含有中英文的字符串

需求:按给定字节数截取含有中英文的字符串,最后一个字节如果截取的是中文则不截取,是英文则截取 实现代码如下(未进行空字符串或非法字节数等异常判断) 1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.Scanner; 4 5 /** 6 * Created by ycl on 2017-8-18 21:01:16. 7 */ 8 public class TestA { 9 public static

JSP 插入到数据库的数据出现 “SQLServerException: 将截断字符串或二进制数据” 错误解决方案

最近在编写一个小型基于的jsp系统开发.掌握数据库一直感觉还不错.但是今天就出现了一个问题困扰我大半天.后来本来准备睡觉,但是觉得今天不解决这个问题恐怕晚上是"彻夜难眠啊"!!于是打开电脑,又开始捣腾.遇到问题首先去网上search了一下.但是大多数的结果只能说:只能远看而不能解决我的问题. 首先我说一下我的情况:数据库中的数据类型和长度基本合适.用sql语句新建一条数据,杠杠的没问题!但是回到jsp中,提交表单最后给我一个伤心的结果.屡试屡败,屡败屡试.结果: "SQLSe

ASP如何计算中英文混合字符串长度和截取字符串

用ASP做网站的时候经常会碰到要截取字符串的情况.ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码 计算中英文混合字符串的长度: [vb] view plaincopyprint? function getStringLen(str) o

System.Data.SqlClient.SqlException: 将截断字符串或二进制数据

问题: " System.Data.SqlClient.SqlException "类型的未经处理的异常在System.Data.dll中发生.其他信息:将截断字符串或二进制数据 这是在做机房收费系统基本数据设定这一模块时遇到的问题. 本来在代码的UI层用Try--Catch捕获到了异常,如下图: 但没遇到过这个问题的人,光看这个肯定也解决不了问题,于是我把Try--Catch注释掉,找到了抛异常的详细信息: 解决: 一看是 " System.Data.SqlClient.S

c#的中英文混合字符串截取

public class StringHelper     {         public static string GetSubString(string str, int len)         {             string result = string.Empty;// 最终返回的结果             int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度