أنا أعمل في مشروع مؤخرًا. بشكل عام ، يتعين على المشروع التعامل مع قاعدة البيانات وإحضار البيانات وإرسالها إلى واجهة من خلال بروتوكول HTTP. لن أتحدث عن الوظائف المحددة ، أنا أتحدث فقط عن نقطة واحدة هنا - مشكلة الترميز
في المشروع ، يتضمن الحصول على قيمة MD5 لجميع البيانات.
في مشاريع Java ، أحب شخصياً تغيير الترميز الافتراضي للمشروع إلى UTF-8. أدوات التطوير المستخدمة هي بشكل أساسي Eclipse. ومع ذلك ، تنشأ مشاكل غريبة. عندما أقوم بتصحيح المشروع في IDE ، لم تكن هناك مشكلة ، ولكن بعد كتابته في حزمة جرة ، مرت
Java -jar Project.Jar
عند التشغيل ، في كل مرة يتم فيها تقديم البيانات ، ستعيد الواجهة البيانات وتقول أن توقيعي غير صحيح. وبعبارة أخرى ، كانت هذه الخطوة الأخيرة ، حدث خطأ ما عند القيام بعمليات MD5.
لماذا لا يمكنني القيام بذلك بعد الحصول على حزمة جرة؟ بعد العديد من التحولات والمنعطفات ، قمت بفحص رمز التجزئة للمعلمات وفحصت البيانات السداسية من جميع المحتويات المقدمة. لقد وجدت أن هناك مشكلة في ترميز النص. إنه صحيح في Eclipse ، ولكن بعد كتابة حزمة JAR ، يبدأ سطر الأوامر دون تعيين ترميز السلسلة الافتراضية ، وبالتالي يتم تشغيل جهاز Java Virtual وفقًا للترميز الافتراضي للنظام. أنا أستخدم بيئة Windows ، لذلك بطبيعة الحال يتم ترميز GBK.
في وقت لاحق ، من خلال البحث عن المعلومات ، كان الحل هو إضافة معلمة لتحديد الترميز:
java -dfile.encoding = utf -8 -jar project.jar
هذا كل شيء. الأداة تعمل بشكل طبيعي.
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!