최근에 프로젝트를 진행하고 있습니다. 일반적으로 프로젝트는 데이터베이스를 처리하고 데이터를 가져와 HTTP 프로토콜을 통해 인터페이스에 제출하는 것입니다. 나는 특정 기능에 대해 이야기하지 않을 것입니다. 여기서 한 가지 점에 대해 이야기합니다 - 인코딩 문제
이 프로젝트에서는 모든 데이터의 MD5 값을 얻는 것이 포함됩니다.
Java 프로젝트에서는 프로젝트의 기본 인코딩을 UTF-8로 변경하는 것을 개인적으로 좋아합니다. 사용 된 개발 도구는 주로 일식입니다. 그러나 이상한 문제가 발생합니다. IDE에서 프로젝트를 디버깅 할 때 문제가 없었지만 JAR 패키지에 입력 한 후 통과했습니다.
java -jar project.jar
실행할 때마다 데이터가 제출 될 때마다 인터페이스가 데이터를 반환하고 내 서명이 잘못되었다고 말합니다. 다시 말해서, 그것은 나의 마지막 단계 였고, MD5 작업을 할 때 무언가 잘못되었습니다.
항아리 패키지를받은 후에는 왜 할 수 없습니까? 몇 번의 비틀기와 회전 후, 나는 매개 변수의 해시 코드를 확인하고 제출 된 모든 내용의 16 진수 데이터를 확인했습니다. 텍스트 인코딩에 문제가 있음을 알았습니다. Eclipse에서는 정확하지만 JAR 패키지를 입력 한 후 명령 줄은 기본 문자열 인코딩을 설정하지 않고 시작하므로 Java Virtual Machine은 시스템의 기본 인코딩에 따라 실행됩니다. Windows 환경을 사용하고 있으므로 당연히 GBK 인코딩입니다.
나중에 정보를 찾아서 솔루션은 인코딩을 지정하기 위해 매개 변수를 추가하는 것이 었습니다.
java -dfile.encoding = utf -8 -jar project.jar
그게 다야. 도구는 정상적으로 실행 중입니다.
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!