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.
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.
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.
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 utiliserDfile.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
你
est0101010010
, et il doit être codé selon utf-8 pour obtenir le symbole你
et affichez-le.