การถอดรหัส Unicode เกิดขึ้นก่อนการแปลคำอื่น ๆ ประโยชน์ที่สำคัญของสิ่งนี้คือมันทำให้ไม่สามารถย้อนกลับไปมาระหว่าง ASCII และการเข้ารหัสอื่น ๆ ได้ คุณไม่จำเป็นต้องคิดออกว่าความเห็นเริ่มต้นและสิ้นสุดอย่างไร!
ตามที่ระบุไว้ในส่วน JLS 3.3สิ่งนี้อนุญาตให้เครื่องมือที่ใช้ ASCII ประมวลผลไฟล์ต้นฉบับ:
[... ] ภาษาการเขียนโปรแกรม Java ระบุวิธีมาตรฐานในการแปลงโปรแกรมที่เขียนใน Unicode เป็น ASCII ที่เปลี่ยนโปรแกรมเป็นรูปแบบที่สามารถประมวลผลได้โดยเครื่องมือที่ใช้ ASCII [ ... ]
สิ่งนี้ให้การรับประกันพื้นฐานสำหรับความเป็นอิสระของแพลตฟอร์ม (ความเป็นอิสระของชุดอักขระที่สนับสนุน) ซึ่งเป็นเป้าหมายสำคัญสำหรับแพลตฟอร์ม Java เสมอ
ความสามารถในการเขียนอักขระ Unicode ที่ใดก็ได้ในไฟล์เป็นคุณสมบัติที่ประณีตและมีความสำคัญอย่างยิ่งในการแสดงความคิดเห็นเมื่อจัดทำรหัสในภาษาที่ไม่ใช่ภาษาละติน ความจริงที่ว่ามันสามารถรบกวนความหมายในรูปแบบที่ละเอียดอ่อนดังกล่าวเป็นเพียงผลข้างเคียง (โชคร้าย)
มี gotchas มากมายในชุดรูปแบบนี้และJava Puzzlersโดย Joshua Bloch และ Neal Gafter รวมตัวแปรต่อไปนี้:
นี่เป็นโปรแกรม Java ที่ถูกกฎหมายหรือไม่ ถ้าเป็นเช่นนั้นมันจะพิมพ์อะไร
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020
\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079
\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020
\u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063
\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028
\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020
\u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074
\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b
\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d
(โปรแกรมนี้กลายเป็นโปรแกรม "Hello World" ธรรมดา)
ในการแก้ปัญหาของปริศนาพวกเขาชี้ให้เห็นสิ่งต่อไปนี้:
ยิ่งไปกว่านั้นปริศนานี้ทำหน้าที่เสริมบทเรียนของสามบทก่อนหน้า: การหลบหนีของ Unicode นั้นเป็นสิ่งจำเป็นเมื่อคุณจำเป็นต้องแทรกตัวละครที่ไม่สามารถนำเสนอด้วยวิธีอื่นใดในโปรแกรมของคุณ หลีกเลี่ยงพวกเขาในกรณีอื่นทั้งหมด
แหล่งที่มา: Java: รหัสการดำเนินการในความคิดเห็น?!