java中这个页面默认是utf-8编码的,1输出乱码可以理解,可是2就不理解了?
PHPz
PHPz 2017-04-18 10:51:36
0
2
718

s按照gbk解码,在按照gbk组合成String,为什么就不是乱码了呢? 那2这个字符串是最终是什么编码 utf-8还是gbk

PHPz
PHPz

学习是最好的投资!

répondre à tous(2)
Peter_Zhu

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal