Het omzetten van een Base64 string naar een meer leesbaarder formaat in Javascript is gemakkelijk. Hieronder lees je de oplossing voor verschillende Javascript omgevingen.
Het kan zijn dat je een backend applicatie maakt met behulp van Node.js. Bijvoorbeeld een Shopify app.
Je ontvangt de hostnaam van een winkel die inlogt op je app. Je ontvang de naam van Shopify in een Base64 string: aHR0cHM6Ly9teXNob3AubXlzaG9waWZ5LmNvbQ
.
Je kunt met onderstaande functie de UTF-8 versie van de hostnaam krijgen.
/**
* @param {string} base64String
* @returns {string}
*/
function decode(base64String) {
return Buffer.from(base64String, 'base64').toString();
}
Probeer de functie uit en je zult zien dat het gedecodeerde resultaat https://myshop.myshopify.com
is.
Gebruik onderstaande functie wanneer je in een browseromgeving werkt zoals in Chrome, Edge of Safari.
/**
* @param {string} base64String
* @returns {string}
*/
function decode(base64String) {
return atob(base64String);
}
Probeer deze functie uit door 'm in de Developer console van je browser te plakken. Voer de functie daarna uit met decode('aHR0cHM6Ly9teXNob3AubXlzaG9waWZ5LmNvbQ')
.
Overigens, atob
staat voor ASCII to binary.
Soms heb je code die zowel draait bij het server-side renderen als bij het opbouwen van de applicatie in de browser.
Je kunt dan onderstaande functie gebruiken die in zowel door Node.js als in een browser based Javascript context gedraaid kan worden.
/**
* @param {string} base64String
* @returns {string}
* @throws When no built-in decoder function is available
*/
function decode(base64String) {
if (typeof window !== 'undefined' && window.atob) {
// We're in a browser-like environment
return window.atob(base64String);
}
if (typeof Buffer !== 'undefined' && Buffer.from) {
// We're in a Node.js-like environment
return Buffer.from(base64String, 'base64').toString();
}
// No built=in Base64 decode function available
throw new Error('No decoder available');
};
Heb je een vraag voor ons? Bericht ons nu en we antwoorden zo snel mogelijk.
Tevens kun je ons bereiken op
+31 6 164 677 43
N.B., je gaat akkoord gaat met het privacy beleid wanneer je gegevens achterlaat.