เมื่อวานนี้พี่ชายรุ่นเยาว์ที่เพิ่งเรียนรู้ Java ส่งโปรแกรมมาให้ฉันและบอกว่าเขาสามารถรวบรวมมันได้และตายและเขามักจะรายงานปัญหาการเข้ารหัส เขาพยายามด้วยตัวเอง แต่มีปัญหา ...
เมื่อเราแก้ไขไฟล์ต้นฉบับ Java เพื่อบันทึกจะถูกบันทึกไว้ในการเข้ารหัสอักขระเริ่มต้นของระบบปฏิบัติการ (ชุดอักขระเริ่มต้นของ Windows XP คือ GBK) เมื่อเรียกคำสั่ง Javac ไฟล์ต้นฉบับจะถูกเข้ารหัสและแปลงในครั้งเดียว หากไม่มีการระบุชุดอักขระจะถูกแปลงจากชุดอักขระเริ่มต้นของระบบปฏิบัติการเป็นชุดอักขระ Unicode เริ่มต้นภายใน Java จากนั้นไฟล์ต้นฉบับจะถูกรวบรวมลงในไฟล์คลาสและบันทึกไว้ในฮาร์ดดิสก์ในรูปแบบของการเข้ารหัส Unicode
หลังจากตรวจสอบข้อผิดพลาดอย่างระมัดระวังฉันพบว่ามันเป็นปัญหาการเข้ารหัสไฟล์ ไฟล์ของเขาถูกเข้ารหัสโดย UTF -8 ดังนั้นการเข้ารหัสจึงถูกเพิ่มและรวบรวมสำเร็จ ~~
การทดสอบระดับสาธารณะ {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {system.out.println ("สวัสดี!"); -d:/> javac test.java
test.java:3: คำเตือน: System.out.println ("日本?); ^test.java: 3: สตริงที่ยังไม่เสร็จค่าตัวอักษรค่าตัวอักษร. println (" 日本?); ^test.java: 3: ';' System.out.println ("日本?); ^test.java: 5: จุดสิ้นสุดของไฟล์ได้มาถึงแล้วเมื่อการแยกวิเคราะห์ไวยากรณ์}d:/> javac -encoding UTF -8 test.java
เมื่อรวบรวม JDK หากรูปแบบการเข้ารหัสของโปรแกรม Java Source ไม่ได้ระบุด้วยพารามิเตอร์ -ENCODING JAVAC จะได้รับรูปแบบการเข้ารหัสที่ใช้โดยระบบปฏิบัติการโดยค่าเริ่มต้น นั่นคือเมื่อรวบรวมโปรแกรม Java หากไม่ได้ระบุรูปแบบการเข้ารหัสของไฟล์โปรแกรมต้นฉบับ JDK จะได้รับรูปแบบการเข้ารหัสเริ่มต้นของระบบปฏิบัติการก่อนหน้านี้ XP คือ GBK จากนั้น JDK จะแปลงโปรแกรม Source Java จากรูปแบบการเข้ารหัสนี้เป็นรูปแบบ Unicode เริ่มต้น จากนั้น Javac จะรวบรวมไฟล์รูปแบบ Unicode ที่แปลงเป็นไฟล์คลาส. class ในเวลานี้ไฟล์. class ถูกเข้ารหัส Unicode และจะถูกวางไว้ในหน่วยความจำชั่วคราว จากนั้น JDK จะบันทึกไฟล์คลาสที่รวบรวมไว้ที่เข้ารหัสใน Unicode ไปยังระบบปฏิบัติการเพื่อสร้างไฟล์. class ไฟล์. class สุดท้ายคือไฟล์คลาสที่มีเนื้อหาที่บันทึกไว้ในรูปแบบการเข้ารหัส Unicode มันมีสตริงจีนในโปรแกรมต้นทาง แต่ในเวลานี้มันได้รับการแปลงเป็นรูปแบบ Unicode ผ่านรูปแบบการเข้ารหัสระบบการติดตั้ง
โดยทั่วไปฉันชอบใช้ UTF-8 ซึ่งสามารถทำงานได้ตามปกติภายใต้ Windows และ Linux ...
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น