بالأمس ، أرسل لي شقيق مبتدئ قد تعلم للتو برنامجًا وقال إنه يمكنه تجميعه على قيد الحياة ويموت ، وقد أبلغ دائمًا عن مشاكل في الترميز. لقد جربها بنفسي ، لكن كانت هناك مشكلة ...
عندما نقوم بتحرير ملف مصدر Java لحفظه ، يتم حفظه في تشفير الأحرف الافتراضية لنظام التشغيل (مجموعة الأحرف الافتراضية لـ Windows XP هي GBK). عند الاتصال بأمر Javac ، سيتم ترميز الملف المصدر وتحويله في GO. إذا لم يتم تحديد مجموعة أحرف ، فسيتم تحويلها من مجموعة الأحرف الافتراضية لنظام التشغيل إلى حرف Unicode الافتراضي الذي تم تعيينه داخل Java ، ثم يتم تجميع الملف المصدر في ملف فئة وحفظه على القرص الثابت في شكل ترميز Unicode.
بعد التحقق من الخطأ بعناية ، وجدت أنها مشكلة في ترميز الملفات. تم ترميز ملفه بواسطة UTF -8 ، وبالتالي تمت إضافة ترميز وتجميعها بنجاح ~~
اختبار الفئة العامة {public static void main (string [] args) {system.out.println ("Hello!") ؛ }}D:/> javac test.java
test.java:3: تحذير: system.out.println ("日本؟) ؛ ^test.java: 3: سلسلة غير مكتملة System.out.println (" 日本؟) ؛ ^test.java: 3: '؛' System.out.println ("日本؟) ؛ ^test.java: 5: تم الوصول إلى نهاية الملف عند تحليل بناء الجملة}D:/> Javac -ending UTF -8 Test.Java
عندما يتم تجميع JDK ، إذا لم يتم تحديد تنسيق الترميز لبرنامج مصدر Java مع معلمة الترميز ، فسيحصل Javac أولاً على تنسيق الترميز المستخدم بواسطة نظام التشغيل افتراضيًا. هذا هو ، عند تجميع برنامج Java ، إذا لم يتم تحديد تنسيق الترميز لملف برنامج المصدر ، فسوف تحصل JDK أولاً على تنسيق الترميز الافتراضي لنظام التشغيل ، وسيكون XP هو GBK ، ثم يقوم JDK بتحويل برنامج مصدر Java هذا من تنسيق الترميز إلى شكل Unicode الافتراضي داخل Java ووضعه في الذاكرة. ثم ، يقوم Javac بتجميع ملف تنسيق Unicode المحول إلى ملف فئة .class. في هذا الوقت ، يتم تشفير ملف .class وحيدًا ويتم وضعه مؤقتًا في الذاكرة. بعد ذلك ، يحفظ JDK ملف الفئة المترجمة المشفر في Unicode إلى نظام التشغيل لتشكيل ملف .class. ملف .class النهائي هو ملف فئة مع محتوى تم حفظه بتنسيق ترميز Unicode. أنه يحتوي على سلاسل صينية في برنامج المصدر ، ولكن في هذا الوقت تم تحويله إلى تنسيق Unicode من خلال تنسيق ترميز نظام التثبيت.
بشكل عام ، أفضل استخدام UTF-8 ، والتي يمكن أن تعمل بشكل طبيعي تحت Windows و Linux ...
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.