MeshCentral/public/novnc/core/util/strings.js

29 lines
745 B
JavaScript
Raw Normal View History

2020-06-06 21:55:47 -04:00
/*
* noVNC: HTML5 VNC client
2021-11-29 15:08:15 -05:00
* Copyright (C) 2019 The noVNC Authors
2020-06-06 21:55:47 -04:00
* Licensed under MPL 2.0 (see LICENSE.txt)
*
* See README.md for usage and integration instructions.
*/
2021-11-29 15:08:15 -05:00
// Decode from UTF-8
export function decodeUTF8(utf8string, allowLatin1=false) {
try {
return decodeURIComponent(escape(utf8string));
} catch (e) {
if (e instanceof URIError) {
if (allowLatin1) {
// If we allow Latin1 we can ignore any decoding fails
// and in these cases return the original string
return utf8string;
}
}
throw e;
}
}
// Encode to UTF-8
export function encodeUTF8(DOMString) {
return unescape(encodeURIComponent(DOMString));
2020-06-06 21:55:47 -04:00
}