Maison > Java > JavaBase > le corps du texte

Comment déterminer si les caractères chinois sont tronqués en Java

Libérer: 2020-01-09 10:34:42
original
3560 Les gens l'ont consulté

Comment déterminer si les caractères chinois sont tronqués en Java

中文乱码在项目中是经常会遇到的情况。当我们通过设置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;  
    }
Copier après la connexion

定义调用:

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));
		
		
 
	}
Copier après la connexion

输出结果:

>>>>>>>>>>:false
Copier après la connexion

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!