Open
Description
If you click on "Try it..." you encounter an issue if the code has a non ASCII char:
From https://github.com/vlang/docs/blob/main/assets/scripts/v-docs.js#L340-L341
let code = editor.getValue();
let url = "https://play.vlang.io/?base64=" + btoa(code);
btoa
can not encode Unicode chars.
The solution would need to be implemented on the vplay end as well to be able to decode the text ( https://developer.mozilla.org/en-US/docs/Web/API/Window/btoa#unicode_strings ):
function base64ToBytes(base64) {
const binString = atob(base64);
return Uint8Array.from(binString, (m) => m.codePointAt(0));
}
function bytesToBase64(bytes) {
const binString = Array.from(bytes, (byte) =>
String.fromCodePoint(byte),
).join("");
return btoa(binString);
}
// Usage
bytesToBase64(new TextEncoder().encode("a Ā 𐀀 文 🦄")); // "YSDEgCDwkICAIOaWhyDwn6aE"
new TextDecoder().decode(base64ToBytes("YSDEgCDwkICAIOaWhyDwn6aE")); // "a Ā 𐀀 文 🦄"
Metadata
Metadata
Assignees
Labels
No labels