KasmVNC/kasmweb/core/util/strings.js

29 lines
745 B
JavaScript
Raw Normal View History

2020-09-20 14:16:44 +02:00
/*
* noVNC: HTML5 VNC client
* Copyright (C) 2019 The noVNC Authors
2020-09-20 14:16:44 +02:00
* Licensed under MPL 2.0 (see LICENSE.txt)
*
* See README.md for usage and integration instructions.
*/
// 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;
}
2020-09-20 14:16:44 +02:00
}
// Encode to UTF-8
export function encodeUTF8(DOMString) {
return unescape(encodeURIComponent(DOMString));
}