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!