Maison > Questions et réponses > le corps du texte
s按照gbk解码,在按照gbk组合成String,为什么就不是乱码了呢? 那2这个字符串是最终是什么编码 utf-8还是gbk
天蓬老师2017-04-18 10:53:36
1 : Si s.getBytes() ne prend aucun paramètre, il appellera l'encodage par défaut de jdk (le vôtre peut être utf-8) pour décoder la chaîne en octet[], puis vous utiliserez la méthode d'encodage gbk pour re -decode l'octet[] Codé dans une chaîne, donc des caractères tronqués apparaîtront.
2.s.getBytes('gbk') Vous décodez la chaîne selon la méthode gbk, puis la ré-encodez en utilisant la méthode gbk, afin qu'il n'y ait pas de caractères tronqués.
PHP中文网2017-04-18 10:53:36
Ce que vous avez dit ci-dessus est correct. Je voudrais ajouter que l'encodage par défaut de jdk est l'encodage spécifié dans file.encoding
Vous pouvez utiliser Dfile.encoding=GBK
pour modifier l'encodage par défaut de JVM.
Pour ajouter quelques connaissances en codage et décodage, si le caractère chinois "Bonjour" doit être transmis dans l'ordinateur, il doit être converti en binaire. Comment convertir en binaire est le décodage mentionné ici. Il existe de nombreuses façons d'encoder
, comme le jeu de caractères Unicode
. Ce jeu de caractères contient des nombres correspondant à différents symboles. Par exemple, 你
est représenté par 2345, qui est ensuite converti en binaire d'une certaine manière (vous pouvez trouver le processus spécifique en ligne pour savoir comment convertir).
Après avoir reçu cette chaîne de nombres binaires, comment la convertir en caractères chinois est le codage mentionné ici. L'encodage doit être résolu d'une certaine manière pour obtenir la correspondance correcte des caractères. Par exemple, le binaire de 你
est 0101010010
, et il doit être codé selon utf-8 pour obtenir le symbole 你
et affichez-le.