From 135c638ee388eca5e1bb28d8a43e4db7a5dc29cd Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Sat, 14 Jan 2023 00:27:28 +0100 Subject: [PATCH] encode chinese name --- src/utils/MRZutile.py | 57 ++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/src/utils/MRZutile.py b/src/utils/MRZutile.py index 79cbbd7..d86a458 100644 --- a/src/utils/MRZutile.py +++ b/src/utils/MRZutile.py @@ -1,20 +1,49 @@ +import re + from mrz.generator.td3 import TD3CodeGenerator -# first_name = "JINXIN" -# last_name = "WANG" -# passport_number = "E59248934" -# birth_day = "941215" -# sex = "F" -# optinal_data = "MFMLMANK<<< list[str]: + s = s.encode(encoding='gb2312').hex() + res = [] + for c in s: + res.append(chr(ord('a') + int(c, base=16))) + return "".join(res).upper() + + +def decode(s: str) -> list[str]: + t = [] + for c in s: + t.append(format((ord(c) - ord('A')), 'x')) + t = re.findall('.{1,2}', "".join(t)) + res = [] + for c in t: + res.append(int("0x" + c, 16)) + return bytes(res).decode('gb2312') + + +chinese_name = "王瑾欣" +encoded_chinese_name = encode(chinese_name) +print(encoded_chinese_name) +optional_data_length = 14 - len(encoded_chinese_name) +for i in range(0, optional_data_length): + encoded_chinese_name = encoded_chinese_name + "<" +first_name = "JINXIN" +last_name = "WANG" +passport_number = "E59248934" +birth_day = "941215" +sex = "F" +# optinal_data = "MFMLMANK<<<