ใน AL Programming เราสามารถใช้ Type Helper Codeunit เพื่อจัดการกับการเข้ารหัสและถอดรหัสข้อมูล HTML และ URL ได้โดยใช้ฟังก์ชัน HtmlEncode, HtmlDecode, UrlEncode และ UrlDecode ซึ่งสำคัญในการป้องกันข้อมูลไม่ให้เกิดปัญหากับการแสดงผลใน HTML หรือการส่งข้อมูลผ่าน URL ที่มีอักขระพิเศษ
1. HtmlEncode และ HtmlDecode
- HtmlEncode: ใช้ในการเข้ารหัสข้อมูลเพื่อให้แน่ใจว่าตัวอักษรพิเศษ เช่น
<,>,&, และเครื่องหมายคำพูด (") ที่อาจเป็นสัญลักษณ์ใน HTML จะถูกแทนที่ด้วยโค้ดที่ถูกต้องเพื่อไม่ให้เกิดปัญหาหรือความขัดแย้งเมื่อแสดงผลในหน้าเว็บ เช่น:<จะถูกเข้ารหัสเป็น<>จะถูกเข้ารหัสเป็น>
- HtmlDecode: ทำงานตรงกันข้ามกับ
HtmlEncodeคือถอดรหัสอักขระพิเศษที่ถูกเข้ารหัสกลับไปเป็นอักขระปกติ เพื่อให้สามารถแสดงข้อมูลที่แท้จริงได้
ตัวอย่างการใช้งาน HtmlEncode และ HtmlDecode ใน AL
procedure HtmlEncodeExample()
var
InputText: Text;
EncodedText: Text;
DecodedText: Text;
begin
// ข้อมูลที่มีอักขระพิเศษ
InputText := '<div>สวัสดี & ยินดีต้อนรับ!</div>';
// เข้ารหัส HTML
EncodedText := TypeHelper.HtmlEncode(InputText);
Message('Encoded HTML: %1', EncodedText); // จะแสดง: <div>สวัสดี & ยินดีต้อนรับ!</div>
// ถอดรหัส HTML
DecodedText := TypeHelper.HtmlDecode(EncodedText);
Message('Decoded HTML: %1', DecodedText); // จะแสดง: <div>สวัสดี & ยินดีต้อนรับ!</div>
end;
2. UrlEncode และ UrlDecode
- UrlEncode: ใช้สำหรับเข้ารหัส URL ซึ่งอักขระพิเศษที่ไม่สามารถใช้ใน URL ได้ เช่น ช่องว่าง ( ), เครื่องหมาย
&, หรือ?จะถูกแทนที่ด้วยโค้ดเฉพาะเช่น%20สำหรับช่องว่าง เพื่อให้มั่นใจว่า URL จะไม่เกิดข้อผิดพลาดเมื่อส่งข้อมูลผ่านโปรโตคอล HTTP - UrlDecode: ทำงานตรงกันข้ามกับ
UrlEncodeโดยจะถอดรหัส URL กลับไปเป็นรูปแบบที่สามารถอ่านได้ เช่น:%20จะถูกถอดรหัสเป็นช่องว่าง ( )
ตัวอย่างการใช้งาน UrlEncode และ UrlDecode ใน AL
procedure UrlEncodeExample()
var
InputUrl: Text;
EncodedUrl: Text;
DecodedUrl: Text;
begin
// ข้อมูล URL ที่มีอักขระพิเศษ
InputUrl := 'https://www.example.com?name=Thanapope & age=30';
// เข้ารหัส URL
EncodedUrl := TypeHelper.UrlEncode(InputUrl);
Message('Encoded URL: %1', EncodedUrl); // จะแสดง: https%3A%2F%2Fwww.example.com%3Fname%3DThanapope%20%26%20age%3D30
// ถอดรหัส URL
DecodedUrl := TypeHelper.UrlDecode(EncodedUrl);
Message('Decoded URL: %1', DecodedUrl); // จะแสดง: https://www.example.com?name=Thanapope & age=30
end;
สรุป
ฟังก์ชัน HtmlEncode และ HtmlDecode ใช้ในการจัดการกับอักขระพิเศษใน HTML เพื่อการแสดงผลที่ปลอดภัยและถูกต้อง ขณะที่ UrlEncode และ UrlDecode ใช้สำหรับการเข้ารหัสและถอดรหัสข้อมูลใน URL ซึ่งเป็นการป้องกันปัญหาจากอักขระที่ไม่สามารถใช้งานได้ใน URL





























