14
ร้อยละเข้ารหัสสตริง
บทนำ อย่างที่คุณบางคนอาจทราบ URL มีรายการอักขระที่ทำสิ่งพิเศษ ยกตัวอย่างเช่น/ตัวอักษรแยกชิ้นส่วนของ URL และ?, &และ=ตัวอักษรที่ใช้ในการส่งผ่านพารามิเตอร์แบบสอบถามไปยังเซิร์ฟเวอร์ อันที่จริงมีตัวละครมากมายที่มีฟังก์ชั่นพิเศษ: $&+,/:;=?@. เมื่อคุณจำเป็นต้องใช้ตัวอักษรเหล่านี้ใน URL สำหรับเหตุผลอื่นใดนอกเหนือจากฟังก์ชั่นพิเศษที่คุณต้องทำสิ่งที่เรียกว่าการเข้ารหัสเปอร์เซ็นต์ การเข้ารหัสเป็นเปอร์เซ็นต์คือเมื่อคุณใช้ค่าเลขฐานสิบหกของตัวละครและเติม%อักขระไปที่จุดเริ่มต้นของอักขระ ยกตัวอย่างเช่นตัวละคร?จะถูกเข้ารหัสเป็น%3Fและตัวละครจะถูกเข้ารหัสเป็น& %26ใน URL โดยเฉพาะสิ่งนี้จะช่วยให้คุณสามารถส่งอักขระเหล่านี้เป็นข้อมูลผ่าน URL โดยไม่ทำให้เกิดปัญหาในการแยกวิเคราะห์ ความท้าทายของคุณคือการใช้สายอักขระและเข้ารหัสเปอร์เซ็นต์อักขระทั้งหมดที่จำเป็นต้องเข้ารหัส ความท้าทาย คุณจะต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสายอักขระเดียวซึ่งประกอบด้วยอักขระที่มี codepoints 00-FF (ASCII และอักขระ ASCII เพิ่มเติม) จากนั้นคุณจะต้องส่งออกหรือส่งกลับสตริงเดียวกันโดยมีการเข้ารหัสเปอร์เซ็นต์อักขระแต่ละตัวหากจำเป็น บิวด์อินที่ทำให้งานนี้สำเร็จไม่ได้รับอนุญาตและไม่เป็นช่องโหว่มาตรฐาน สำหรับการอ้างอิงนี่คือรายการของตัวละครทุกตัวที่ต้องเข้ารหัสเป็นเปอร์เซ็นต์: อักขระควบคุม (Codepoints 00-1F และ 7F) อักขระ ASCII เพิ่มเติม (Codepoints 80-FF) อักขระที่จองไว้ ( $&+,/:;=?@เช่น codepoints 24, 26, 2B, 2C, …