Special characters in data from json file
Special characters in data from json file
ponasromas
Posts: 2Questions: 2Answers: 0
Hello,
so here is part of code which retrieves json data.
$(document).ready(function () {
var table = $('#records').DataTable({
dom: 'Bflrtip',
colReorder: true,
fixedHeader: true,
"ajax": {
url: '/data',
dataSrc: ''
},
"columns": [
{
"className": 'dt-control',
"orderable": false,
"data": null,
"defaultContent": ''
},
{ "data": "date" },
{ "data": "mta" },
{ "data": "country" },
{ "data": "env_from" },
{ "data": "from" },
{ "data": "subject" }
],
"order": [[1, 'desc']],
select: {
style: 'os',
selector: 'td:not(:first-child)',
style: 'multi'
}
});
JSON data example which is fed to the script above:
[{
country: "US"
date: "2022/05/10-17:33:23"
env_from: "blabermouth@domain.com"
from: "Blaber Mouth <b.mouth@domain.com>"
mta: "localhost"
subject: "Fw: Note from Blaber Mouth"
}]
Notice 'from:' field. When rendering table, it just displays 'Blaber Mouth', it cuts off <b.mouth@domain.com> part. How to escape/replace or encode special characters in data returned?
Answers
The key thing to be aware of here is that DataTables doesn't attempt to escape any HTML data by default - so it is injecting that straight into the document and the browser is hiding it as a tag!
Use the text rendering helper to stop that from happening.
Allan