`
minghe_zy
  • 浏览: 125904 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JAVA判断字符串是否为乱码

 
阅读更多

   转载,源文件http://blog.csdn.net/jonay/article/details/6644167

 

  1. import java.util.regex.Matcher;  
  2. import java.util.regex.Pattern;  
  3.   
  4. public class MessyCodeCheck {  
  5.   
  6.   public static boolean isChinese(char c) {  
  7.     Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);  
  8.     if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS  
  9.         || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS  
  10.         || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A  
  11.         || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION  
  12.         || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION  
  13.         || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {  
  14.       return true;  
  15.     }  
  16.     return false;  
  17.   }  
  18.   
  19.   public static boolean isMessyCode(String strName) {  
  20.     Pattern p = Pattern.compile("\\s*|\t*|\r*|\n*");  
  21.     Matcher m = p.matcher(strName);  
  22.     String after = m.replaceAll("");  
  23.     String temp = after.replaceAll("\\p{P}""");  
  24.     char[] ch = temp.trim().toCharArray();  
  25.     float chLength = ch.length;  
  26.     float count = 0;  
  27.     for (int i = 0; i < ch.length; i++) {  
  28.       char c = ch[i];  
  29.       if (!Character.isLetterOrDigit(c)) {  
  30.   
  31.         if (!isChinese(c)) {  
  32.           count = count + 1;  
  33.           System.out.print(c);  
  34.         }  
  35.       }  
  36.     }  
  37.     float result = count / chLength;  
  38.     if (result > 0.4) {  
  39.       return true;  
  40.     } else {  
  41.       return false;  
  42.     }  
  43.   
  44.   }  
  45.   
  46.   public static void main(String[] args) {  
  47.     System.out.println(isMessyCode("*��JTP.jar�ļ����JTP�ļ���ȡ��ͼƬ��Դ"));  
  48.     System.out.println(isMessyCode("你好"));  
  49.   }  
  50. }  
分享到:
评论
1 楼 NeverGiveUpToChange 2015-02-26  
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1===GB2312-----中国高规格====---false
%E4%B8%AD%E5%9B%BD%E9%AB%98%E8%A7%84%E6%A0%BC
%E4%B8%AD%E5%9B%BD%E9%AB%98%E8%A7%84%E6%A0%BC===GB2312-----涓��楂����====---true
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1
%D6%D0%B9%FA%B8%DF%B9%E6%B8%F1===GB2312-----中国高规格====---false
%3F%3F%3F%3F%3F
%3F%3F%3F%3F%3F===GB2312-----?????====---false

最后一个乱码他提示不乱码

相关推荐

    Java判断字符串是否含有乱码实例代码

    在Java中判断字符串是否含有乱码是一个常见的问题,特别是在处理网络传输数据或文本文件导入导出时。本文将介绍通过实例代码如何判断一个字符串是否含有乱码,并通过编写的Java方法来实现此功能。 首先,我们需要...

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    解决android读取中文乱码 自动判断文档类型并转码

    解决 Android 读取中文乱码自动判断文档类型并转码 Android 读取中文 txt 文件时经常会出现乱码问题,主要是因为文档的编码格式不确定,从而导致读取时出现乱码。为了解决这个问题,我们可以通过自动判断文档类型...

    java获取字符串编码类型代码(导入直接查看结果)

    一种常见方法是尝试用不同的编码方式解析字符串,观察是否出现乱码。以下是一个简单的示例: ```java import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.nio.charset....

    java中截取带汉字的字符串

    - **计算截取次数**:通过字符串长度与每次截取的字节数进行模运算来判断是否能整除,进而决定最后一次截取的长度。 - **执行截取**:循环遍历字符串,每次取出指定长度的子串并打印出来。 #### 注意事项 1. **...

    字符串转换为计算公式的若干种方法

    从给定的文件标题“字符串转换为计算公式的若干种方法”及描述“个人收集的几种将字符串表达式转换为计算公式的方法”中,我们可以看出文章主要探讨的是如何将文本形式的数学表达式(字符串)转化为可以进行计算的...

    java 截取字符串(判断汉字)

    ### Java截取字符串(判断汉字) #### 背景与目的 在开发Web应用程序时,尤其是在使用Java Server Pages (JSP) 进行开发时,经常需要处理包含中文字符的字符串。由于中文字符通常占用两个字节,而英文字符只占用一...

    Java实现文件下载并解决中文文件名乱码

    - **Firefox处理**:Firefox支持UTF-8编码,但当文件名作为HTTP响应的一部分时,需要先将UTF-8编码的字符串转换为ISO-8859-1编码再发送给浏览器。 ```java filename = new String(filename.getBytes("UTF-8"), ...

    java判断编码方式

    在Java编程语言中,判断文件或字符串的编码方式是一个常见的需求。这主要涉及到字符集的概念,如ASCII、ISO-8859-1、UTF-8等,它们用于将二进制数据转换为人类可读的字符。在Java中,有多种方法可以用来识别或检测一...

    数据库乱码的处理

    原始的方法是通过简单的字符串操作来解析乱码部分。具体实现如下: ```java public static String AsciiToStr(String str) { String uniStr = ""; if (str != null && str.contains("&#") && str.contains(";")) ...

    字符串 截取

    具体来说,代码通过比较不同长度的子字符串的字符数来判断是否包含半个汉字。如果发现截取的字节数会导致包含半个汉字,则会向前回退一个字节,确保不会截取到半个汉字。 ### 总结 综上所述,正确地处理包含中文...

    UTF8格式的字符串转变为char型格式字符串

    1. **解析UTF8字符串**:遍历UTF8字符串的每个字节,根据标记位判断当前字节是否是某个字符的开始或后续部分。如果是开始部分,记录字节数并继续读取;如果是后续部分,组合这些字节以得到原始Unicode码点。 2. **...

    Java进制/时间/日期/字符串/流算法大全

    Java 的16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的...

    Ajax中文乱码问题解决方案

    3. **JavaScript操作不当**:在JavaScript中对字符串进行编码或解码时,未使用正确的编码格式,如使用了`encodeURI()`而不是`encodeURIComponent()`。 4. **响应数据处理错误**:接收到服务器响应后,前端未正确...

    字符串截取(按字节)

    在计算机编程中,字符串处理是一项基本而关键的任务,尤其在处理非英文字符时,如何精确地按照字节进行字符串截取变得尤为重要。本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释...

    java判断文件编码

    3. 检测文件编码:使用`detectCharset`方法,传入待检测文件的路径,它将返回一个字符串,表示最可能的文件编码。 例如: ```java import com.mycompany.FileCharsetDetector; // 假设FileCharsetDetector在这个包...

    java 一个截取字符串的函数

    代码实现中,我们首先检查输入字符串是否为null,然后将其转换为字节数组。这里使用`getBytes()`方法,默认使用系统默认编码,通常是UTF-8。接下来,我们计算字符串的字节数,并检查输入的截取字节数是否超过这个...

    java实现上传文件类型检测过程解析

    在 Java 中,可以使用 FileInputStream 读取文件的二进制数据,并将其转换为十六进制字符串。然后,使用 HashMap 缓存文件头信息,通过文件头信息来判断文件的真正类型。 以下是 Java 实现上传文件类型检测过程解析...

    MAC地址合法性检测(正则表达式,C/C++, JAVA实现)

    2. **使用matches方法**:Java 的字符串类提供了`matches`方法,可以直接用来判断一个字符串是否匹配某个正则表达式。 3. **日志输出**:根据匹配结果输出相应的日志信息。 ### 总结 无论是使用C/C++还是Java,...

    java代码-是否在字符串

    3. **contains()方法**:这是Java 5引入的另一个方便的方法,它直接判断字符串是否包含给定的字符序列。返回值为布尔类型,如果包含则返回`true`,否则返回`false`。例如: ```java String str = "Hello, World!";...

Global site tag (gtag.js) - Google Analytics