Dynamics 365 Business Central: การใช้ HtmlEncode, HtmlDecode, UrlEncode, และ UrlDecode ใน AL Programming

ใน AL Programming เราสามารถใช้ Type Helper Codeunit เพื่อจัดการกับการเข้ารหัสและถอดรหัสข้อมูล HTML และ URL ได้โดยใช้ฟังก์ชัน HtmlEncode, HtmlDecode, UrlEncode และ UrlDecode ซึ่งสำคัญในการป้องกันข้อมูลไม่ให้เกิดปัญหากับการแสดงผลใน HTML หรือการส่งข้อมูลผ่าน URL ที่มีอักขระพิเศษ

1. HtmlEncode และ HtmlDecode

  • HtmlEncode: ใช้ในการเข้ารหัสข้อมูลเพื่อให้แน่ใจว่าตัวอักษรพิเศษ เช่น <, >, &, และเครื่องหมายคำพูด (") ที่อาจเป็นสัญลักษณ์ใน HTML จะถูกแทนที่ด้วยโค้ดที่ถูกต้องเพื่อไม่ให้เกิดปัญหาหรือความขัดแย้งเมื่อแสดงผลในหน้าเว็บ เช่น:
    • < จะถูกเข้ารหัสเป็น &lt;
    • > จะถูกเข้ารหัสเป็น &gt;
  • 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); // จะแสดง: &lt;div&gt;สวัสดี &amp; ยินดีต้อนรับ!&lt;/div&gt;
    
    // ถอดรหัส 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

Leave a comment