/// <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 == || bytesLength < )
return "";
int bytesCount = dstEncoding.GetByteCount(origStr);
if (bytesCount > bytesLength)
{
int readyLength = ;
int byteLength;
for (int i = ; i < origStr.Length; i++)
{
byteLength = dstEncoding.GetByteCount(new char[] { origStr[i] });
readyLength += byteLength;
if (readyLength == bytesLength)
{
origStr = origStr.Substring(, i + );// + "..."; 加省略号
break;
}
else if (readyLength > bytesLength)
{
origStr = origStr.Substring(, i);// + "..."; 加省略号
break;
}
}
}
return origStr;
}
sting newStr = GetSubString(origStr, bytesLength, Encoding.UTF8);
C# 按不同的字节编码,通过字节数去截取字符串的更多相关文章
-
单字节编码&;双字节编码
单字节编码(WINDOWS-1252.ISO-8859-1.UTF-8) 双字节编码(UTF-16) Windows 记事本默认会将文件保存为单字节的 ANSI(ASCII).如果您选择 " ...
-
encode_utf8 把字符编码成字节 微信例子
##µ¼Èë encode_json decode_json use JSON qw/encode_json decode_json/; print "1111111111111111-\$ ...
-
encode_utf8 把字符编码成字节 decode_utf8解码UTF-8到字符
encode_utf8 $octets = encode_utf8($string); Equivalent to "$octets = encode("utf8", $ ...
-
java 字节编码学习
位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头.UTF-8最多可用到6个字节. 如表: 1字节 0xxxxxxx 2字节 110xxxxx 10xxxxxx 3字节 11 ...
-
linux od-输出文件的八进制、十六进制等格式编码的字节
博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全 od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符. 常见的文件为文 ...
-
前端中常见字节编码(base64、hex、utf8)及其转换
/* * 字节编码转换 * 首先都需要转为二级制数组 (ArrayBuffer) * 然后才能转换对应的编码字符 * 前端常见编码: * base64:就是将二进制转为字符串,将每6个字节转为一个特定 ...
-
(转)宽字节编码类型的XSS
今晚又看了一遍PKAV-心上的瘦子写的xss腾讯系列的例子,收获挺大的,其中对宽字节注入有了更深的了解,又查找了一些相关的资料,整理一下,以备以后查阅 参考文档: http://book.2cto.c ...
-
Java按字节截取字符串(GBK编码、UTF-8编码实现)
package FileDemo; import java.io.IOException; public class CutStringTest { /** * @param args * @thro ...
-
java基础知识回顾之---java String final类普通方法的应用之“按照字节截取字符串”
/*需求:在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符.但对应的字节数不同,一个汉字占两个字节.定义一个方法,按照最大的字节数来取子串.如:对于“ab你好”,如果取三 ...
随机推荐
-
Jquery弹窗效果
1.主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
-
单机安装TFS(转载)
一.安装操作系统:windows server 2003 + Sp2具体步骤: 1.安装windows server 2003时选用工作组(默认为workgroup).由于在工作组环境中部署,因此使用 ...
-
[LeetCode] Combination Sum II (递归)
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...
-
scala函数定义的四种方式
最近开始接触scala编程语言,觉得还是比较新的一个东西,虽然说和java比较像,是java的继承者,兼顾面向对象编程和函数式编程的优点,但是,终究是一个新的东西,还是要从最基本的学起.而这当中,函数 ...
-
Java对象校验框架之Oval
只要有接口,就会有参数的校验,目前开源的校验框架已经非常多了,不过不得不提一下Oval.OVal 是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件.Annotation.POJO ...
-
【Eclipse】Failed to load JavaHL Library
1.选择window--->preferences->Team->SVN->SVN接口 2.选择SVNKit (Pure Java) xxxxxx 如下图所示 : 选择之后, ...
-
java项目---遍历系统文件(1星)
package Demo; import java.io.*; public class TraversalContent { public static void main(String []arg ...
-
java操作Hbase
public class Test { public Connection connection; // 用HBaseconfiguration初始化配置信息是会自动加载当前应用的classpath下 ...
-
Python下载安装
https://www.python.org/downloads/ https://www.editplus.com/ftp/epp510_1828.exe EditPlus 5.1
-
linux command ------ dmesg
驱动开发中使用函数 printk() 打印的信息可以通过 dmesg 查看 简介 ‘dmesg’命令显示linux内核的环形缓冲区信息,我们可以从中获得诸如系统架构.cpu.挂载的硬件,RAM等多个运 ...