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

 

/**
     * 根据字符集类型统计字符串中字节数
     * @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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值