java如何判断是否中文乱码

互联网 20-1-9

中文乱码在项目中是经常会遇到的情况。当我们通过设置request和response字符集,但是还是出现中文乱码的时候,今天给介绍一种通过java方法实现判断string是否为乱码的方法。

	 /**       * 判断字符串是否是乱码       *       * @param strName 字符串       * @return 是否是乱码       */       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 = ch.length;           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;                   }               }           }           float result = count / chLength;           if (result > 0.4) {               return true;           } else {               return false;           }           }             /**       * 判断字符是否是中文       *       * @param c 字符       * @return 是否是中文       */       public 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 void main(String[] args) { 		// TODO Auto-generated method stub 		 		/*List<String> list = new ArrayList<String>(); 		 		Map<List<String>, String> map = new HashMap<>();*/ 		 		 		String messcode = "ss201888asdf;#????"; 		System.out.println(">>>>>>>>>>:"+isMessyCode(messcode)); 		 		   	}

输出结果:

>>>>>>>>>>:false

更多java知识请关注PHP中文网java基础教程栏目。

以上就是java如何判断是否中文乱码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 乱码
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:怎样编译安装swoole

相关资讯