http://my.oschina.net/cevin15/blog/402975
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(String msg){
if(isMessyCode(msg)){
try {
return new String(msg.getBytes("ISO8859-1"), "UTF-8");
} catch (Exception e) {
}
}
return msg ;
}
}
分享到:
相关推荐
在Java中判断字符串是否含有乱码是一个常见的问题,特别是在处理网络传输数据或文本文件导入导出时。本文将介绍通过实例代码如何判断一个字符串是否含有乱码,并通过编写的Java方法来实现此功能。 首先,我们需要...
### Java中截取带汉字的字符串 在Java编程语言中,处理包含中文字符的字符串时,经常遇到的一个问题是如何正确地截取这些字符串。如果直接按照字节(byte)来进行分割,很容易导致中文字符被截断一半,从而形成乱码。...
不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);
解决 Android 读取中文乱码自动判断文档类型并转码 Android 读取中文 txt 文件时经常会出现乱码问题,主要是因为文档的编码格式不确定,从而导致读取时出现乱码。为了解决这个问题,我们可以通过自动判断文档类型...
在Java编程语言中,处理字符串时,了解字符串的编码类型是非常重要的。编码类型决定了字符集,它定义了如何将字符转换为数字(字节)以及如何将数字转换回字符。常见的编码类型有ASCII、ISO-8859-1、UTF-8、GBK等。...
从给定的文件标题“字符串转换为计算公式的若干种方法”及描述“个人收集的几种将字符串表达式转换为计算公式的方法”中,我们可以看出文章主要探讨的是如何将文本形式的数学表达式(字符串)转化为可以进行计算的...
### Java截取字符串(判断汉字) #### 背景与目的 在开发Web应用程序时,尤其是在使用Java Server Pages (JSP) 进行开发时,经常需要处理包含中文字符的字符串。由于中文字符通常占用两个字节,而英文字符只占用一...
根据给定文件的信息,本文将围绕“字符串截取”这一主题进行深入探讨,重点在于如何在Java环境下实现对包含中文字符的字符串进行精确截取,同时确保不会出现半个汉字的情况。 ### 字符串截取的基本概念 在计算机...
在计算机编程中,字符串处理是一项基本而关键的任务,尤其在处理非英文字符时,如何精确地按照字节进行字符串截取变得尤为重要。本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释...
在Java编程语言中,判断文件或字符串的编码方式是一个常见的需求。这主要涉及到字符集的概念,如ASCII、ISO-8859-1、UTF-8等,它们用于将二进制数据转换为人类可读的字符。在Java中,有多种方法可以用来识别或检测一...
Java 的16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的...
在Java编程语言中,字符串处理是一项常见的任务。本题中,我们需要编写一个函数,该函数能够根据指定的字节数截取字符串,并确保不会出现汉字被截半的情况。这是一个涉及字符编码和边界条件处理的问题。 首先,我们...
### Java实现文件下载并解决中文文件名乱码 在日常的Web开发中,经常会遇到需要让用户下载文件的需求,尤其是在企业级应用中。然而,在实际操作过程中可能会遇到一个常见问题:当文件名包含中文字符时,下载后的...
1. **解析UTF8字符串**:遍历UTF8字符串的每个字节,根据标记位判断当前字节是否是某个字符的开始或后续部分。如果是开始部分,记录字节数并继续读取;如果是后续部分,组合这些字节以得到原始Unicode码点。 2. **...
3. **JavaScript操作不当**:在JavaScript中对字符串进行编码或解码时,未使用正确的编码格式,如使用了`encodeURI()`而不是`encodeURIComponent()`。 4. **响应数据处理错误**:接收到服务器响应后,前端未正确...
原始的方法是通过简单的字符串操作来解析乱码部分。具体实现如下: ```java public static String AsciiToStr(String str) { String uniStr = ""; if (str != null && str.contains("&#") && str.contains(";")) ...
- 判断字符串长度是否超过目标长度。如果未超过,则直接返回原字符串。 - 如果超过了目标长度,则进一步计算实际字符宽度,并据此确定截取的位置。 - 在循环中,逐个字符判断其是全角还是半角字符,并相应累加宽度值...
在Java编程中,判断文件编码是一项重要的任务,尤其是在处理用户上传的文件或处理不同系统间的文件传输时。本文将深入探讨如何使用Java进行文件编码的检测,并基于提供的资源——`cpdetector_1.0.5.jar`、`chardet....
Java程序中,字符串默认使用UTF-16编码,这是Unicode的一种实现,可以确保正确处理各种语言,包括中文。理解字符编码是解决字符乱码问题的关键。在读写文件或网络通信时,我们需要确保编码和解码的格式一致,否则...
3. **contains()方法**:这是Java 5引入的另一个方便的方法,它直接判断字符串是否包含给定的字符序列。返回值为布尔类型,如果包含则返回`true`,否则返回`false`。例如: ```java String str = "Hello, World!";...