0

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.

Druz
  • 85
  • 1
  • 11
  • 1
    Do you have any font with Hebrew symbols on page? – STerliakov Sep 24 '22 at 20:45
  • Does this answer your question? [Using Javascript's atob to decode base64 doesn't properly decode utf-8 strings](https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings) – Eldar Sep 24 '22 at 20:48

1 Answers1

1
let decoded = decodeURIComponent(escape(window.atob(...)));
chrslg
  • 9,023
  • 5
  • 17
  • 31