2020-09-20 14:16:44 +02:00
|
|
|
/*
|
|
|
|
* noVNC: HTML5 VNC client
|
2019-12-04 10:13:25 +01:00
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
|
2019-12-04 10:13:25 +01:00
|
|
|
// Decode from UTF-8
|
2019-12-23 10:25:02 +01:00
|
|
|
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
|
|
|
}
|
2019-12-04 10:13:25 +01:00
|
|
|
|
|
|
|
// Encode to UTF-8
|
|
|
|
export function encodeUTF8(DOMString) {
|
|
|
|
return unescape(encodeURIComponent(DOMString));
|
|
|
|
}
|