java 判断中文是否乱码

xiaoxiao2021-02-28  74

Java判断中文是否乱码

[java] view plain copy print ? 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*|\t*|\r*|\n*");          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 ;       }  }   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*|\t*|\r*|\n*"); 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 ; } }

转载请注明原文地址: https://www.6miu.com/read-68038.html

最新回复(0)