Maison  >  Article  >  Java  >  chaîne java caractères tronqués

chaîne java caractères tronqués

angryTom
angryTomoriginal
2019-11-18 10:22:394167parcourir

chaîne java caractères tronqués

code tronqué de la chaîne Java

Le problème est que les méthodes d'encodage du système de pré-version, de production et locale Les environnements sont incohérents. La valeur par défaut du système est UTF-8, tandis que le codage par défaut pour les environnements de pré-version et de production est GBK, ce qui entraîne des caractères tronqués.

Si la méthode d'encodage n'est pas spécifiée, la méthode d'encodage du système sera utilisée par défaut.

String csn = Charset.defaultCharset().name();
try {
    // use charset name decode() variant which provides caching.
    return decode(csn, ba, off, len);
} catch (UnsupportedEncodingException x) {
    warnUnsupportedCharset(csn);
}
try {
    return decode("ISO-8859-1", ba, off, len);
} catch (UnsupportedEncodingException x) {
    // If this code is hit during VM initialization, MessageUtils is
    // the only way we will be able to get any kind of error message.
    MessageUtils.err("ISO-8859-1 charset not available: " +
        x.toString());
    // If we can not find ISO-8859-1 (a required encoding) then things
    // are seriously wrong with the installation.
    System.exit(1);
    return null;
}
System.getProperty("file.encoding") //查看系统默认编码方式

La solution est la suivante :

1. Transcoder lors de l'utilisation d'une chaîne

System.out.println(str);
String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8");
System.out.println(str1);
String str2 = new String(str.getBytes("gb2312"), "utf-8");
System.out.println(str2);
String str3 = new String(str.getBytes("gbk"), "utf-8");
System.out.println(str3);

2. les chaînes sont transcodées

String decodeStr=null;
decodeStr = URLDecoder.decode(url, "utf-8");

Par conséquent, lors de l'utilisation de String, la méthode d'encodage doit être spécifiée indépendamment de l'encodage ou du décodage, sinon elle sera couplée à l'environnement système.

Site Web php chinois, un grand nombre de Tutoriels d'introduction à Java gratuits, bienvenue pour apprendre en ligne !

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!

Déclaration:
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
Article précédent:Java est-il un pointeur ?Article suivant:Java est-il un pointeur ?