package com.test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @description 判断中文是否乱码 */ public class MessyCodeCheck { 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 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.2) {//乱码字符 大于原内容的20%算是乱码 return true; } else { return false; } } public static void main(String[] args) { System.out.println(isMessyCode("XYZr�������ABCDԴ")); System.out.println(isMessyCode("平台新¥%&#@*(版本发布")); System.out.println(isMessyCode("System.out.println")); } }
相关推荐
在Java中判断字符串是否含有乱码是一个常见的问题,特别是在处理网络传输数据或文本文件导入导出时。本文将介绍通过实例代码如何判断一个字符串是否含有乱码,并通过编写的Java方法来实现此功能。 首先,我们需要...
下面是一个判断字符串是否为utf8的函数: bool is_str_utf8(const char* str) { unsigned int nBytes = 0;//UFT8可用1-6个字节编码,ASCII用一个字节 unsigned char chr = *str; bool bAllAscii = t
为了解决这个问题,我们可以通过自动判断文档类型并转码来解决乱码问题。 在 Java 中,我们可以使用 BufferedInputStream 和 BufferedReader 来读取文件,并通过判断文件的前三个字节来确定文件的编码格式。常见的...
本文实例讲述了C#简单判断字符编码的方法。分享给大家供大家参考,具体如下: public static string GetText(byte[] buff) { string strReslut = string.Empty; if (buff.Length > 3) { if (buff[0] == 239 && ...
通过检测每个字符的第一个字节,我们可以准确地判断出字符的字节长度,并据此进行截取操作,从而避免了乱码问题的出现。这些函数在处理中文文本时非常有用,特别是在需要显示固定长度的摘要或预览文本时。 ### 使用...
zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了StringUtils类中,所以需要修改这个类,在修改...
在C#编程中,处理汉字乱码问题是一个常见的需求,尤其是在读取或写入文本文件时。当在C#控制台应用中遇到汉字输出乱码的情况,这通常是因为编码不匹配所导致的。编码是字符集与二进制数据之间的转换规则,不同的系统...
在Android平台上,开发人员经常遇到一个棘手的问题,那就是如何正确地读取包含中文字符的TXT文件,因为不恰当的处理往往会导致乱码。本文将深入探讨如何彻底解决这一问题,包括自动判断文档编码类型以及进行转码操作...
在这个文件中,定义一个函数is_gb2312,该函数用于判断字符串编码是否为gb2312。函数的实现逻辑是,遍历字符串的每个字符,然后通过ord函数获得该字符的ASCII值,如果该值大于127,那么就可能是gb2312编码。然后,...
本程序主要实现了对字符串中特定字符的检测,并通过一系列的输入输出操作来完成任务。虽然程序中存在一些不太规范的写法,如使用了已废弃的`gets`函数、循环结构不够直观等,但整体上仍然展示了一些基本的C语言编程...
在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器(Filter)对请求进行预处理,以确保...
这些方法都有一个可选的编码参数,同样可以避免乱码问题: ```vb.net Dim content As String = File.ReadAllText(filePath, encoding) Dim lines() As String = File.ReadAllLines(filePath, encoding) ``` 总之,...
在制作安装包时,Inno Setup 是一个常用的选择,尤其是在制作中文安装包时。但是,在非中文系统上,Inno Setup 制作的中文安装包常常会出现乱码的问题。这篇文章将讲解如何解决这个问题。 首先,我们需要下载支持 ...
通过Reflector反编译分析源码,可以定位问题所在,优化代码以实现正确处理中文字符,从而提供一个稳定且功能齐全的二维码生成解决方案。在实际应用中,开发者应关注字符编码的细节,确保数据在编码、传输和解码过程...
总的来说,理解和处理中文乱码问题需要对字符编码有深入的理解,以及对S22.Imap库的熟悉。通过适当地修改源码,开发者能够克服这个障碍,使得S22.Imap能够更准确地处理含有中文字符的邮件,从而提升用户体验。
在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。这是因为一个中文字符通常占用多...
在ASCII编码中,每个字符只需要一个字节(8位)来表示,因此称为单字节字符。这包括英文字符、数字、标点符号等。然而,对于包含多种语言和复杂字符集的Unicode编码,一个字符可能需要两个字节或更多来表示,比如...
其中包含100+个乱码的字符,可以用于判断部分字符是否乱码