Java to determine whether Chinese garbled
Import Java.util.regex.Matcher;
Import Java.util.regex.Pattern; public class Chineseutill {private static Boolean Ischinese (char c) {Character.unicodeblock UB = Character.unicodebl
Ock.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++;
The float result = count/chlength;
if (Result > 0.4) {return true;
else {return false;
The 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;
}
}