按一定长度截取utf-8编码的字符串
2014-02-28 14:02
281 查看
int getChLength(unsigned char c) { if (c < 0x7F) { return 1; }else if ((c & 0xE0) == 0xC0) { return 2; }else if ((c & 0xF0) == 0xE0) { return 3; }else if ((c & 0xF8) == 0xF0) { return 4; }else if ((c & 0xFC) == 0xF8) { return 5; }else if ((c & 0xFE) == 0xFC) { return 6; }else return -1; } std::string sUtf8Substr(std::string sFormerStr, int iRsltLen) { if (sFormerStr.size() <= iRsltLen) { return sFormerStr; } char* cbuf = new char[iRsltLen]; memset(cbuf, 0, iRsltLen); int i = 0; int j = 0; while (i < iRsltLen) { j = getChLength(sFormerStr[i]); if (j == -1) break; strcat(cbuf, sFormerStr.substr(i, j).c_str()); i += j; } std::string sTmp(cbuf); delete [] cbuf; if (sTmp.size() > iRsltLen) { sTmp.erase(sTmp.size() - 1 - j, j); } return sTmp; }
相关文章推荐
- ASP UTF-8编码下字符串截取和获取长度函数
- JSTL中截取一定长度的字符串
- 截取指定长度的字符串(UTF-8专用 汉字和大写字母长度算1,其它字符长度算0.5)
- PHP截取一定长度字符串的函数
- PHP截取一定长度字符串的函数
- php 截取一定长度的字符串(该函数对GB2312使用有效
- PHP截取一定长度字符串的函数
- PHP截取字符串编码(兼容utf-8和gb2312)
- [PHP] - 按长度截取字符串(针对UTF-8)
- Java按字节截取字符串(GBK编码、UTF-8编码实现)
- 截取UTF-8编码下字符串的函数
- PHP截取一定长度字符串的函数
- 按 字节截取分别以GBK 和 utf-8 编码的 字符串的java程序。
- PHP 字符串编码截取函数(兼容utf-8和gb2312)
- 用JavaScript截取一定长度字符串(中文长度为2,英文长度为1)
- 两个截取字符串的实用方法(超过一定长度自动换行)
- JSTL中截取一定长度的字符串长度,如果超过指定长度在未尾加“......”,否则返回原来字符串。
- 数据库截取一定长度的字符串
- 写了一个字符串截取一定长度的代码,中文两个字符,英文一个字符,如果截断了自动用一个.或两个.来对齐,用于标题的显示