Je travaille récemment sur un projet. En général, le projet est de traiter la base de données et de récupérer les données et de les soumettre à une interface via le protocole HTTP. Je ne parlerai pas des fonctions spécifiques, je parle juste d'un point ici - le problème de codage
Dans le projet, cela implique d'obtenir la valeur MD5 de toutes les données.
Dans les projets Java, j'aime personnellement modifier le codage par défaut du projet vers UTF-8. Les outils de développement utilisés sont principalement l'éclipse. Cependant, des problèmes étranges surviennent. Lorsque je débogage du projet dans l'IDE, il n'y avait aucun problème, mais après avoir été tapé dans un paquet de bocal, il est passé
java -jar project.jar
Lors de l'exécution, chaque fois que les données sont soumises, l'interface renvoie les données et dit que ma signature est incorrecte. En d'autres termes, c'était ma dernière étape, quelque chose s'est mal passé lorsque vous effectuez des opérations MD5.
Pourquoi ne puis-je pas le faire après avoir obtenu un package en pot? Après plusieurs rebondissements, j'ai vérifié le code de hash des paramètres et vérifié les données hexadécimales de tous les contenus soumis. J'ai trouvé qu'il y avait un problème avec le codage de texte. Il est correct dans Eclipse, mais après avoir tapé le package JAR, la ligne de commande commence sans définir le codage de chaîne par défaut, de sorte que la machine virtuelle Java s'exécute en fonction du codage par défaut du système. J'utilise un environnement Windows, donc naturellement c'est le codage GBK.
Plus tard, en recherchant les informations, la solution était d'ajouter un paramètre pour spécifier le codage:
java -dfile.encoding = utf-8 -jar project.jar
C'est tout. L'outil s'exécute normalement.
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!