From 3e8f7ed36df60045fc98f1cc989151548442a141 Mon Sep 17 00:00:00 2001 From: XieJiSS Date: Wed, 31 Aug 2022 20:24:48 +0800 Subject: [PATCH] fix: unicode-related error during .ts generation The user may uses a different codepage/encoding which is not unicode, so we'd like to get rid of that --- flutter/web/js/gen_js_from_hbb.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/flutter/web/js/gen_js_from_hbb.py b/flutter/web/js/gen_js_from_hbb.py index 13dbc96fc..0bdde54e4 100755 --- a/flutter/web/js/gen_js_from_hbb.py +++ b/flutter/web/js/gen_js_from_hbb.py @@ -5,25 +5,36 @@ import os import glob from tabnanny import check +def pad_start(s, n, c = ' '): + if len(s) >= n: + return s + return c * (n - len(s)) + s + +def safe_unicode(s): + res = "" + for c in s: + res += r"\u{}".format(pad_start(hex(ord(c))[2:], 4, '0')) + return res + def main(): print('export const LANGS = {') for fn in glob.glob('../../../src/lang/*'): lang = os.path.basename(fn)[:-3] if lang == 'template': continue print(' %s: {'%lang) - for ln in open(fn): + for ln in open(fn, encoding='utf-8'): ln = ln.strip() if ln.startswith('("'): toks = ln.split('", "') assert(len(toks) == 2) a = toks[0][2:] b = toks[1][:-3] - print(' "%s": "%s",'%(a, b)) + print(' "%s": "%s",'%(safe_unicode(a), safe_unicode(b))) print(' },') print('}') check_if_retry = ['', False] KEY_MAP = ['', False] - for ln in open('../../../src/client.rs'): + for ln in open('../../../src/client.rs', encoding='utf-8'): ln = ln.strip() if 'check_if_retry' in ln: check_if_retry[1] = True @@ -55,7 +66,7 @@ def main(): print('export const KEY_MAP: any = {') print(KEY_MAP[0]) print('}') - for ln in open('../../../Cargo.toml'): + for ln in open('../../../Cargo.toml', encoding='utf-8'): if ln.startswith('version ='): print('export const ' + ln)