3
ตัวแปลง Unicode UTF
เป้าหมายคือการสร้างแปลงอย่างสอดคล้องระหว่างการเข้ารหัส Unicode อย่างเป็นทางการตามที่กำหนดในUTF คำถามที่พบบ่อย ระบุว่าสิ่งนี้มีศูนย์กลางอยู่ที่ Unicode ฉันจะยอมรับคำตอบด้วยจำนวนไบต์ต่ำสุดโดยใช้การเข้ารหัสที่ดีที่สุดเท่าที่จะเป็นไปได้ (ซึ่งอาจเป็น UTF-8 เว้นแต่คุณจะตั้งโปรแกรมใน APL) ฉันขอโทษสำหรับการโพสต์นาน แต่มากของมันจะอธิบายการเข้ารหัสซึ่งยังสามารถเข้าถึงได้ในสเปคอย่างเป็นทางการ (PDF ส่วน 3.9 D90 - D92)หรือวิกิพีเดีย ข้อมูลจำเพาะ หากตลอดเวลาที่คุณเลือกภาษาไม่สามารถตอบสนองความต้องการอย่างแน่นอนให้แทนที่ด้วยสิ่งที่ยึดจิตวิญญาณของกฎที่กำหนด เช่น. ไม่ใช่ทุกภาษาที่มีอาเรย์ในตัวฟังก์ชั่นและอื่น ๆ ไม่ใช้ไลบรารีสตริง / ฟังก์ชันหรือเข้ารหัสไลบรารี / ฟังก์ชัน จุดประสงค์ของ code golf นี้คือการใช้เครื่องมือแปลงโดยใช้การจัดการบิต / ไบต์ การใช้สตริงเองในฐานะอักขระหรืออาร์เรย์ไบต์ได้รับอนุญาต โอ้และไม่มีการเรียกใช้ระบบปฏิบัติการที่ดำเนินการแปลงอย่างใดอย่างหนึ่ง ตัวแปลงเป็นฟังก์ชั่นที่จะใช้พารามิเตอร์สามตัว: อาร์เรย์ไบต์ที่เป็นตัวแทนของสตริงอินพุตที่เข้ารหัสและการเข้ารหัส "อินพุต" และ "เอาต์พุต" ที่แสดงเป็นตัวเลข เราจะกำหนดUTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, and …