zoukankan      html  css  js  c++  java
  • Java 判断字符串 中文是否为乱码

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class ChineseUtill {
    
        private static boolean isChinese(char c) {
            Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
            if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
                    || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                    || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
                    || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
                    || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
                    || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
                return true;
            }
            return false;
        }
        
        public static boolean isMessyCode(String strName) {
            Pattern p = Pattern.compile("\s*|	*|
    *|
    *");
            Matcher m = p.matcher(strName);
            String after = m.replaceAll("");
            String temp = after.replaceAll("\p{P}", "");
            char[] ch = temp.trim().toCharArray();
            float chLength = 0 ;
            float count = 0;
            for (int i = 0; i < ch.length; i++) {
                char c = ch[i];
                if (!Character.isLetterOrDigit(c)) {
                    if (!isChinese(c)) {
                        count = count + 1;
                    }
                    chLength++; 
                }
            }
            float result = count / chLength ;
            if (result > 0.4) {
                return true;
            } else {
                return false;
            }
        }
        
        
        public static String toChinese(Object msg){
            String tempMsg = TransformUtils.toString(msg) ;
            if(isMessyCode(tempMsg)){
                try {
                    return new String(tempMsg.getBytes("ISO8859-1"), "UTF-8");
                } catch (Exception e) {
                }
            }
            return tempMsg ; 
        }
    }
  • 相关阅读:
    网络连接 长连接 短链接
    提升系统的QPS和吞吐量
    QPS/TPS/并发量/系统吞吐量的概念
    spring与mybatis四种整合方法
    理解HTTP之keep-alive
    MyBatis 3 使用注解配置SQL映射器
    Dubbo -- Simple Monitor
    Dubbo后台管理和监控中心部署
    Socket通讯-Netty框架实现Java通讯
    Netty 能做什么
  • 原文地址:https://www.cnblogs.com/raphael5200/p/6812902.html
Copyright © 2011-2022 走看看