/// <summary>        /// 截取方法名显示宽度        /// </summary>        /// <param name="methodName">方法名</param>        /// <param name="byteLen">需要截取的字节长度(可以显示的最长字节长度,包括省略号...)</param>        /// <return…
private int GetStrByteLength(string str) { return System.Text.Encoding.Default.GetByteCount(str); } private string SubStrLenth(string str, int startIndex, int length) { int strlen = GetStrByteLength(str); if (startIndex + 1 > strlen) { return "&qu…
<!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>CSS截取中英文混合字符串长度</title> <meta name="keywords" content="" /> <me…
网站制作过程中,提示层文字超出,需要JS做字符串截取,但是呢,我们常常会烦恼文字中英文混合如何判断,因为我们知道在JS中 string.length这个值是不考虑中英文的,但是计算机对中英文的识别是 中文占2个字符,英文一个字母占一个字符(包括数字).查阅相关资料后,最近找到一个好的办法解决此问题. 分析下逻辑,比如我们要对字符串截取10个字(英文就是20个字符),创建一个函数 view plaincopy to clipboardprint? function SetSub(str,n){ /…
题目: 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个". GB2312.GBK.GB18030,CP936以及CNS11643都满足条件 -- 中文是占用2个字节的,英文是占用1一个字节 . 因为中文转换为byte字节,随着编码的不…
public class StringHelper     {         public static string GetSubString(string str, int len)         {             string result = string.Empty;// 最终返回的结果             int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度          …
//c#的中英文混合字符串截取指定长度,startidx从0开始 by gisoracle@126.com public string getStrLenB(string str, int startidx, int len) { int Lengthb = getLengthb(str); if (startidx + 1 > Lengthb) { return ""; } int j = 0; int l = 0; int strw = 0;//字符的宽度 bool b = …
1.字符串长度 PHP获取中英文混合字符串长度的实现代码如下,1中文=1位,2英文=1位,可自行修改 /** * PHP获取字符串中英文混合长度 * @param $str string 字符串 * @param $$charset string 编码 * @return 返回长度,1中文=1位,2英文=1位 */ function strLength($str,$charset='utf-8'){ if($charset=='utf-8') $str = iconv('utf-8','gb23…
很早以前写过一篇文章(用C#截取指定长度的中英文混合字符串),但是对性能没有测试,有人说我写的这个方法性能有问题,后来想,可能真会有BT之需求要求传入一个几万K甚至几M体积的字符串进来,那将会影响正则Match的速度,比如文章系统中就极有可能用到,今天有点时间,就改进了一下,代码如下: public static string getStr(string s,int l,string endStr) { , (s.Length < l)?s.Length:l); if (Regex.Replac…
/// <summary>        /// c#的中英文混合字符串截取(区分中英文)        /// </summary>        /// <param name="inputString"></param>        /// <param name="byteLength">要输出的字节长度</param>        /// <returns></r…
平时在作数据库插入操作时,如果用 INSERT 语句向一个varchar型字段插入内容时,有时会因为插入的内容长度超出规定的长度而报错. 尤其是插入中英文混合字符串时,SQL Server中一般中文要占两个字节,所以对混合型的字符串就要作一个处理,统一按字节长度来计算字符串长度,方法如下: C#方法一: public static string GetString(string str, int len) { string result = string.Empty;// 最终返回的结果 int…
//截取字符串长度(中文2个字节,半个中文显示一个) public String subTextString(String str,int len){ if(str.length()<len/2)return str; int count = 0; StringBuffer sb = new StringBuffer(); String[] ss = str.split(""); for(int i=1;i<ss.length;i++){ count+=ss[i].getB…
参考博客:UTF8字符串在lua的截取和字数统计[转载] 需求 按字面个数来截取子字符串 函数(字符串, 开始位置, 截取长度) utf8sub(,) = 好1世界哈 utf8sub(,) = 你好1世界 utf8sub(,) = 你好世界1 utf8sub(,) = utf8sub(,) = pø你好p 错误方法 网上找了一些算法, 都不太正确; 要么就是乱码, 要么就是只考虑了4 byte 中文的情况, 不够全面 1. string.sub(s,1,截取长度*4) 网上很多直接使用"`&qu…
PHP自带的函数如strlen().mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节.例: $enStr = 'Hello,China!'; echo strlen($enStr); // 输出:12 而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8.utf-8能兼容更多的字符,所以受到很多站长的喜爱.gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异. gbk编码下每个中文字符所占字节为…
<?php //////////////////////////////////////////////////////////////////// // PHP截取中英文及标点符号混合的字符串函数(绝对不会出现乱码) // 本程序在utf-8.gb2312中测试通过.使用者自行测试big5. // 函数 left( 源字符串, 截取指定的字符串个数, 编码(可省略,默认为utf-8) ) /////////////////////////////////////////////////////…
转载请注明来源:https://www.cnblogs.com/hookjc/ function cut_str($string, $sublen, $start = 0, $code = 'utf-8') { if($code == 'utf-8') { $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\…
重点:1.在H5页面,文字大小单位为rem2.不同的font-family,文字的宽度不一样3.文字宽度同时受font-size和font-family影响 思路:在页面动态创建一个节点,设置节点的font-size,font-family,还有内容,然后获取它的宽度.节点宽度必须随内容变化而变化,所以使用display:inline-block 为了避免禅城误差,使用 getComputedStyle 方法来计算宽度,具体原因看上一篇博客:http://blog.csdn.net/zy1281…
参考自:(1)http://www.cnblogs.com/cnluoke/articles/1213398.html (2)http://www.cnblogs.com/sql4me/archive/2009/11/16/1603996.html 方法一:将已有字符串组织成新字符串时填充 由于某一个字段,包含有汉字和数字.而一个汉字是两位占位符的大小,如果单从字符串长度来看,一个汉字的长度为1.假如按一个包含汉字字符串长度就等于占位符大小(如果只包含字母和数字的字符串这样计算是对的)来计算的话…
今晚在写框架的表单验证类时,需要判断某个字符串长度是否在指定区间内,很自然地,想到了PHP中的strlen函数. $str = 'Hello world!'; echo strlen($str);  // 输出12 然而在PHP自带的函数中,strlen及mb_strlen都是通过计算字符串所占字节数来计算长度的,在不同的编码情况下,中文所占的字节数是不同的.在GBK/GB2312下,中文字符占2个字节,而在UTF-8下,中文字符占3个字节. $str = '你好,世界!'; echo strl…
/// <summary> /// 截断字符串 /// </summary> /// <param name="maxLength">最大长度</param> /// <param name="str">原字符串</param> /// <returns></returns> public static string CutStr(int maxLength, strin…
参考自:(1)http://www.cnblogs.com/cnluoke/articles/1213398.html (2)http://www.cnblogs.com/sql4me/archive/2009/11/16/1603996.html 方法一:将已有字符串组织成新字符串时填充 由于某一个字段,包含有汉字和数字.而一个汉字是两位占位符的大小,如果单从字符串长度来看,一个汉字的长度为1.假如按一个包含汉字字符串长度就 等于占位符大小(如果只包含字母和数字的字符串这样计算是对的)来计算的…
通常情况下要想掌握一个字符串变量的长度[一般掌握其字数],自然想到 strlen |--   $str = 'string'; echo strlen($str); //6 .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-sp…
(strlen($string) + mb_strlen($string,'UTF8')) / 2;tw 这样计算的…
转载请注明来源:https://www.cnblogs.com/hookjc/ function isChinese(str) {    var lst = /[u00-uFF]/;           return !lst.test(str);       } function strlen(str)  { var strlength = 0; for (var i=0; i < str.length; ++i) { if (isChinese(str.charAt(i)) == true)…
function ccStrLen($str) #计算中英文混合字符串的长度 { $ccLen=0; $ascLen=strlen($str); $ind=0; $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字 $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符 if($hasCC && !$hasAsc) #只有汉字的情况 return strlen($str)/2; if(!$…
截取含中文的混合字符串长度 /** * 截取中文混合字符串指定长度 * * @param string $string * @param integer $length * @param string $etc 超过长度时的省略符 * @param string $charset 字符编码 utf-8 或者 gbk * @return string */ public function truncateCn($string, $length = 80, $etc = '...', $charse…
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //第一种方法 NSLog(@"--first-%i",[self convertToInt:@"123我爱你"]); //第二种方法 NSLog(@"--second--%ld",[self getToInt:@"123我爱你"…
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: 对于字符串的截取,truncate函数只适合英文用户,对与中文用户来说,使用 truncate会出现乱码,而且对于中文英文混合串来说,截取同样个数的字符串,实际显示长度上却不同,一个中文的长度大致相当于两个英文的长度.此外,truncate不能同时兼容GB2312.UTF-8等编码. 解决方法:自…
javascript截取字符串(支持中英文混合) <script type="text/javascript"> var sub=function(str,n){ var r=/[^\x00-\xff]/g; if(str.replace(r,"mm").length<=n){return str;} var m=Math.floor(n/2); for(var i=m;i<str.length;i++){ if(str.substr(0,i…
在显示字符串的时候,避免字符串过长往往会对字符串进行截取操作,通常会用到js的 substr 或者 substring方法, 以及 字符串的length属性 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符. substring() 方法用于提取字符串中介于两个指定下标之间的字符. 对于非中文的字符串处理是很简单的,但是中文字符的 length  属性值 是1  而不是 2 ,所以处理就不是很友好了.    例如  你有一个字符串   'abcdefg' 和   '…