master
js 28 lines 745 Bytes
Raw
1 /*
2 * noVNC: HTML5 VNC client
3 * Copyright (C) 2019 The noVNC Authors
4 * Licensed under MPL 2.0 (see LICENSE.txt)
5 *
6 * See README.md for usage and integration instructions.
7 */
8
9 // Decode from UTF-8
10 export function decodeUTF8(utf8string, allowLatin1=false) {
11 try {
12 return decodeURIComponent(escape(utf8string));
13 } catch (e) {
14 if (e instanceof URIError) {
15 if (allowLatin1) {
16 // If we allow Latin1 we can ignore any decoding fails
17 // and in these cases return the original string
18 return utf8string;
19 }
20 }
21 throw e;
22 }
23 }
24
25 // Encode to UTF-8
26 export function encodeUTF8(DOMString) {
27 return unescape(encodeURIComponent(DOMString));
28 }