`

根据字符集类型统计字符串中字节数

 
阅读更多

 

/**
     * 根据字符集类型统计字符串中字节数
     * @param str
     * @param charset
     * @return 字节数
     * @throws UnsupportedEncodingException 
     */
    public static int countByteByCharset(String str, String charset) throws UnsupportedEncodingException{
    	int count = 0;
    	
    	if(StringUtils.isEmpty(str)){
    		return 0;
    	}
    	
    	if("ISO8859-1".equalsIgnoreCase(charset.toUpperCase())){
    		count = str.getBytes("ISO8859-1").length;
		} else if("GB2312".equalsIgnoreCase(charset.toUpperCase())){
    		count = str.getBytes("GB2312").length;
		} else if("GBK".equalsIgnoreCase(charset.toUpperCase())){
    		count = str.getBytes("GBK").length;
		} else if("UTF-8".equalsIgnoreCase(charset)){
    		count = str.getBytes("UTF-8").length;
		}
    	return count;
    }

  测试类:

public static void main(String[] args) throws UnsupportedEncodingException {      
      String str = "7只需3000元-7plus只需3500元 6s只需2000-6splus只需2200 6 只需1600-6p只需1800 5S:900-5Se:1200 国行正品 支持全国联保 支持貨捯附款 支持紛期附款 加昵称上的号咨询购 维 姓 号 K F C 3 6 2";
	  System.out.println("ISO8859-1:" + countByteByCharset(str, "ISO8859-1"));
	  System.out.println("GB2312:" + countByteByCharset(str, "GB2312"));
	  System.out.println("GBK:" + countByteByCharset(str, "GBK"));
	  System.out.println("UTF-8:" + countByteByCharset(str, "UTF-8"));
    }

 运行结果:

 ISO8859-1:131

GB2312:178

GBK:181

UTF-8:231

分享到:
评论

相关推荐

    计算字符串中的单双字节字符个数

    下面将详细探讨如何计算字符串中的单双字节字符个数,以及它们在实际应用中的作用。 首先,让我们理解什么是单字节和双字节字符。在ASCII编码中,每个字符只需要一个字节(8位)来表示,因此称为单字节字符。这包括...

    PHP统计字符串长度

    这时,我们需要考虑使用其他方法来准确统计字符串的字符数,包括汉字。一种方法是使用PHP的正则表达式配合`preg_match_all()`函数。例如: ```php function strLength($str) { preg_match_all('/./u', $str, $...

    C++统计字符个数

    总之,C++中统计字符串字符个数的方法主要包括使用字符数组或关联容器(如`std::map`)。根据实际需求,我们可以选择合适的数据结构和方法来实现这一功能。通过理解和实践这样的基础操作,能够更好地掌握C++语言的...

    一个判断字符串编码类型的类,支持多种编码

    4. 统计分析:分析字符串中不同字符集的分布,根据出现频率来推测编码类型,比如在中文文本中,GBK和UTF-8的分布可能会有所不同。 对于C++的开发者,虽然C#的代码不能直接使用,但可以通过移植或参考`...

    易语言字节集特征分析源码

    在易语言中,这通常涉及字符串查找、哈希计算、模式匹配等技术。例如,你可以使用“查找子串”命令寻找字节集中是否存在特定的字节序列,或者利用“计算MD5”、“计算SHA1”等函数获取字节集的哈希值,以此作为特征...

    字符串122000.txt

    - **`getBytes(String charsetName)`**:将字符串转换为字节数组,使用指定的字符集编码。 ```java byte[] bytes = str.getBytes("UTF-8"); ``` ### Java字符串内部实现 #### 1. 字符串池 - Java中字符串对象是...

    精确统计字符

    在Delphi中,可以使用`Length()`函数来快速统计字符串中的英文字符数量。 中文字符,作为Unicode的一部分,每个字符通常占用2或3个字节。在处理时,需要确保正确地解析这些多字节序列,否则可能会统计错误。在...

    中英文字符统计

    特别是对于包含多种字符集(如中英文混合)的文本,能够准确地统计各种字符的数量,有助于进一步的数据分析或处理任务。本篇文章将详细解析一个具体的例子:“中英文字符统计”程序,该程序使用C++语言编写,主要...

    常用限制文本字节数的JS源代码程序

    - 此方法仅适用于简单的字符集,对于复杂的多字节字符(如某些特殊符号或表情符号),可能需要更复杂的算法来计算字节数。 - 对于安全性较高的场景,建议在后端也进行相应的长度限制校验。 #### 总结 通过以上介绍...

    宽字符集(unicode)操作函数

    - **wcscspn()**:统计一个字符串中直到遇到指定字符串中的任意字符为止的字符个数。等同于 `strcspn()`。 通过上述介绍,我们可以看到宽字符函数为 Unicode 字符串处理提供了全面的支持,极大地简化了多语言环境下...

    识别中文字符

    1. 中文字符识别的原理:文件中通过C语言的程序实现了一个简单的方法来统计混合字符串中的中文字符个数。程序的基本逻辑是通过检查字符串中每个字符的ASCII码值来判断该字符是否为中文。由于中文字符在计算机中的...

    易语言源码易语言字节集特征分析源码.rar

    在易语言中,字节集是一个重要的数据类型,它用于存储和处理二进制数据,例如文件内容、网络传输的数据等。字节集特征分析是信息安全领域的一个关键概念,尤其是在病毒检测、逆向工程和恶意软件分析中。 易语言字节...

    JAVA中汉字字符转化为英文字符

    - 如果是负数,则使用位运算 `(bt[i] & (0x7f))` 转换为相应的ASCII值,并添加到结果字符串中。 - 如果是非负数,则认为是英文字符,先添加一个空字符再添加原字符。 - 最终返回处理后的字符串。 ##### 3. 方法 ...

    [removed]一段比较精简的代码实现取得字符串的字节数

    在本例中,将介绍一个在VBScript(一种主要用于Windows环境的脚本语言,常用于网页中嵌入动态脚本)中实现获取字符串字节长度的方法。 首先,我们需要理解在不同的编码体系中,汉字所占用的字节数是不同的。在GBK...

    使用php统计字符串中中英文字符的个数

    在PHP编程语言中,统计字符串中中英文字符的个数是一项常见的任务,这在处理用户输入、数据分析或者文本处理场景中很有用。本篇将详细解释如何使用PHP来完成这个功能,以及涉及到的相关知识点。 首先,我们要理解的...

    精彩编程与编程技巧-如何取得中英混合字符串的长度?...

    在给定的部分内容中,使用了VBScript中的`LenB`函数来获取字符串的字节数。例如: ```vb Dim strTest strTest = "1" ' 获取字节数 Debug.Print "ByteLen(\"" & strTest & "\")=" & LenB(strTest) ' 将字符串转换...

    php字符串函数分类

    在处理字符串时,我们经常会遇到需要统计字符串长度的情况。PHP提供了多种方法来实现这一功能。 ##### `strlen` **功能描述:** 获取字符串长度(默认为字节长度)。 **示例代码:** ```php $str = 'a1'; echo ...

    Java 字节流、字符流题目.docx

    练习五中,读取的字节数组需要转换为字符串,可以使用`new String(byte[])`构造函数完成。 扩展题中,练习一需要统计特定字符在文件中的出现次数,这可以通过遍历字节输入流,检查每个字节是否等于目标字符的ASCII...

    计算中英文字符长度

    这个名为"计算中英文字符长度"的工程提供了一个实用的示例,演示了如何区分并统计字符串中的中文和英文字符。下面我们将深入探讨相关的知识点。 首先,我们要了解字符编码。在计算机中,字符是以特定的二进制形式...

    字符串比较

    对于ASCII字符串,每个字符可以用一个字节表示,因此可以使用一个32位或64位的整数来存储两个字符串的字符集。遍历字符串,将对应字符的ASCII值转化为二进制,然后对整数进行按位与(AND)和按位异或(XOR)操作。按...

Global site tag (gtag.js) - Google Analytics