JavaScript base64 decoding into gibberish

Viewed 26

I'm trying to decode a base64 script using JavaScript and atob. here's the string:

PHRhYmxlIGRpcj0ncnRsJyBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+DQo8dGhlYWQ+DQo8dGggc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPtee16En15M8L3RoPjx0aCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+16rXkNeo15nXmiDXlNeq15fXnNeUPC90aD48dGggc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPteq15DXqNeZ15og16HXmdeV1508L3RoPjx0aCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+16nXoteV16og16LXkdeV15PXlDwvdGg+PC90aGVhZD4NCjx0cj48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPjE8L3RkPjx0ZCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+MjMtMDktMjAyMjwvdGQ+PHRkIHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCBibGFjazsgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Jz4yNC0wOS0yMDIyPC90ZD48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPteR16nXoteV16og15TXoteR15XXk9eUINeU16jXkteZ15zXldeqPC90ZD48L3RyPjx0cj48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPjI8L3RkPjx0ZCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+MjUtMDktMjAyMjwvdGQ+PHRkIHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCBibGFjazsgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Jz4yNy0wOS0yMDIyPC90ZD48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPtep16LXldeqINeU16LXkdeV15PXlCDXlNeo15LXmdec15XXqjwvdGQ+PC90cj4NCjwvdGFibGU+

This is the code I'm using:

<p id="table"></p>

<script charset="utf-8">
let decoded = window.atob("PHRhYmxlIGRpcj0ncnRsJyBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+DQo8dGhlYWQ+DQo8dGggc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPtee16En15M8L3RoPjx0aCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+16rXkNeo15nXmiDXlNeq15fXnNeUPC90aD48dGggc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPteq15DXqNeZ15og16HXmdeV1508L3RoPjx0aCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+16nXoteV16og16LXkdeV15PXlDwvdGg+PC90aGVhZD4NCjx0cj48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPjE8L3RkPjx0ZCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+MjMtMDktMjAyMjwvdGQ+PHRkIHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCBibGFjazsgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Jz4yNC0wOS0yMDIyPC90ZD48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPteR16nXoteV16og15TXoteR15XXk9eUINeU16jXkteZ15zXldeqPC90ZD48L3RyPjx0cj48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPjI8L3RkPjx0ZCBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgYmxhY2s7ICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyc+MjUtMDktMjAyMjwvdGQ+PHRkIHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCBibGFjazsgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7Jz4yNy0wOS0yMDIyPC90ZD48dGQgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkIGJsYWNrOyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsnPtep16LXldeqINeU16LXkdeV15PXlCDXlNeo15LXmdec15XXqjwvdGQ+PC90cj4NCjwvdGFibGU+");

document.getElementById("table").innerHTML = decoded;
</script>

The base64 string contains an HTML code for a table with Hebrew words but for some reason the Java script decodes Hebrew into Gibberish and the result I'm getting looks like this:

Gibberish result

while it should look like this:

how is should look

I'm a noob to JavaScript any suggestions or advices will be appreciated.

1 Answers
let decoded = decodeURIComponent(escape(window.atob(...)));
Related