mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2026-01-02 10:53:07 +00:00
utils: add base64 conversion helper
Add helper functions to convert from a utf8 string to a base64 string and vice-versa. Using the TextEncoder/TextDecoder we can support unicode such as emojis as well [0]. [0]: https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem Signed-off-by: Gabriel Goller <g.goller@proxmox.com> Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
f18c0d3636
commit
ffeb8004fb
18
src/Utils.js
18
src/Utils.js
@ -1356,6 +1356,24 @@ utilities: {
|
||||
);
|
||||
},
|
||||
|
||||
// Convert utf-8 string to base64.
|
||||
// This also escapes unicode characters such as emojis.
|
||||
utf8ToBase64: function(string) {
|
||||
let bytes = new TextEncoder().encode(string);
|
||||
const escapedString = Array.from(bytes, (byte) =>
|
||||
String.fromCodePoint(byte),
|
||||
).join("");
|
||||
return btoa(escapedString);
|
||||
},
|
||||
|
||||
// Converts a base64 string into a utf8 string.
|
||||
// Decodes escaped unicode characters correctly.
|
||||
base64ToUtf8: function(b64_string) {
|
||||
let string = atob(b64_string);
|
||||
let bytes = Uint8Array.from(string, (m) => m.codePointAt(0));
|
||||
return new TextDecoder().decode(bytes);
|
||||
},
|
||||
|
||||
stringToRGB: function(string) {
|
||||
let hash = 0;
|
||||
if (!string) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user