查找 base64 XML 字符串的第二个编码
Finding second encoding of base64 XML string
我在一些 XML 数据中有一些 base64 编码的文本字段。
为了正确显示所有字符,我想我需要找到用于此文本的附加编码,从外观上看它不是 UTF-8。 ?也许还有其他一些编码方面,不确定..
我不确定我应该在这里编码和解码什么顺序 - 以下 https://www.geeksforgeeks.org/encoding-and-decoding-base64-strings-in-python/ 我首先尝试:
- 用每个possible Python2.7 encoding编码整个字符串,然后
- 使用 base64 解码
(每次结果都一样,问题字符没有标准表示)
然后我尝试了:
- 使用 utf8 编码字符串
- 使用 base64 解码
- 用每个 possible Python2.7 encoding
解码字节字符串
但是,none 这些答案字符串似乎得到了问题字符的任何标准表示,应显示为“é”和“ü”。
我附上这个示例字符串,我确定最终正确的文本应该是什么。
原始 base64 字符串:b64_encoded_bytes = 'R3KfbmRlciBGco5kjnJpYyBKb3Vzc2V0JiMxMzsmIzEzO3NlbGVjdGlvbiBjb21taXR0ZWUgZm9yIGFydGlzdCByZWNpZGVuY3k6IFZpbmNpYW5jZSBEZXNwcmV0LCBLb3lvIEtvdW9oLCBDaHJpc3RpbmUgbWFjZWwsIEhhbnMtVWxyaWNoIE9icmlzdCwgTmF0YT9hIFBldHJlP2luLUJhY2hlbGV6LCBQaGlsaXBwZSBWZXJnbmU='
以正确的 'é' 和 'ü' 字符开头的文本字符串,根据欧洲语言知识推断:
'Gründer Frédéric Jousset selection committee for artist
recidency: Vinciance Despret, Koyo Kouoh, Christine macel, Hans-Ulrich
Obrist, Nata?a Petre?in-Bachelez, Philippe Vergne'
注意“
” HTML 是 Windows 中使用的明显换行符的编码,而 '?'也可能解析为具有正确编码的另一个正确字符,或者可能是“?”是原始数据中的实际显示。
好像是用mac_roman
编码的:
>>> b64 = 'R3KfbmRlciBGco5kjnJpYyBKb3Vzc2V0JiMxMzsmIzEzO3NlbGVjdGlvbiBjb21taXR0ZWUgZm9yIGFydGlzdCByZWNpZGVuY3k6IFZpbmNpYW5jZSBEZXNwcmV0LCBLb3lvIEtvdW9oLCBDaHJpc3RpbmUgbWFjZWwsIEhhbnMtVWxyaWNoIE9icmlzdCwgTmF0YT9hIFBldHJlP2luLUJhY2hlbGV6LCBQaGlsaXBwZSBWZXJnbmU='
>>> bs = base64.b64decode(b64)
>>> bs
b'Gr\x9fnder Fr\x8ed\x8eric Jousset selection committee for artist recidency: Vinciance Despret, Koyo Kouoh, Christine macel, Hans-Ulrich Obrist, Nata?a Petre?in-Bachelez, Philippe Vergne'
>>> print(bs.decode('mac_roman'))
Gründer Frédéric Jousset selection committee for artist recidency: Vinciance Despret, Koyo Kouoh, Christine macel, Hans-Ulrich Obrist, Nata?a Petre?in-Bachelez, Philippe Vergne
“Nata?a Petre?in-Bachelez”中的问号出现在原始数据中,可能是先前 encoding/decoding 问题的结果。
我在一些 XML 数据中有一些 base64 编码的文本字段。
为了正确显示所有字符,我想我需要找到用于此文本的附加编码,从外观上看它不是 UTF-8。 ?也许还有其他一些编码方面,不确定..
我不确定我应该在这里编码和解码什么顺序 - 以下 https://www.geeksforgeeks.org/encoding-and-decoding-base64-strings-in-python/ 我首先尝试:
- 用每个possible Python2.7 encoding编码整个字符串,然后
- 使用 base64 解码
(每次结果都一样,问题字符没有标准表示)
然后我尝试了:
- 使用 utf8 编码字符串
- 使用 base64 解码
- 用每个 possible Python2.7 encoding 解码字节字符串
但是,none 这些答案字符串似乎得到了问题字符的任何标准表示,应显示为“é”和“ü”。
我附上这个示例字符串,我确定最终正确的文本应该是什么。
原始 base64 字符串:b64_encoded_bytes = 'R3KfbmRlciBGco5kjnJpYyBKb3Vzc2V0JiMxMzsmIzEzO3NlbGVjdGlvbiBjb21taXR0ZWUgZm9yIGFydGlzdCByZWNpZGVuY3k6IFZpbmNpYW5jZSBEZXNwcmV0LCBLb3lvIEtvdW9oLCBDaHJpc3RpbmUgbWFjZWwsIEhhbnMtVWxyaWNoIE9icmlzdCwgTmF0YT9hIFBldHJlP2luLUJhY2hlbGV6LCBQaGlsaXBwZSBWZXJnbmU='
以正确的 'é' 和 'ü' 字符开头的文本字符串,根据欧洲语言知识推断:
'Gründer Frédéric Jousset selection committee for artist recidency: Vinciance Despret, Koyo Kouoh, Christine macel, Hans-Ulrich Obrist, Nata?a Petre?in-Bachelez, Philippe Vergne'
注意“ ” HTML 是 Windows 中使用的明显换行符的编码,而 '?'也可能解析为具有正确编码的另一个正确字符,或者可能是“?”是原始数据中的实际显示。
好像是用mac_roman
编码的:
>>> b64 = 'R3KfbmRlciBGco5kjnJpYyBKb3Vzc2V0JiMxMzsmIzEzO3NlbGVjdGlvbiBjb21taXR0ZWUgZm9yIGFydGlzdCByZWNpZGVuY3k6IFZpbmNpYW5jZSBEZXNwcmV0LCBLb3lvIEtvdW9oLCBDaHJpc3RpbmUgbWFjZWwsIEhhbnMtVWxyaWNoIE9icmlzdCwgTmF0YT9hIFBldHJlP2luLUJhY2hlbGV6LCBQaGlsaXBwZSBWZXJnbmU='
>>> bs = base64.b64decode(b64)
>>> bs
b'Gr\x9fnder Fr\x8ed\x8eric Jousset selection committee for artist recidency: Vinciance Despret, Koyo Kouoh, Christine macel, Hans-Ulrich Obrist, Nata?a Petre?in-Bachelez, Philippe Vergne'
>>> print(bs.decode('mac_roman'))
Gründer Frédéric Jousset selection committee for artist recidency: Vinciance Despret, Koyo Kouoh, Christine macel, Hans-Ulrich Obrist, Nata?a Petre?in-Bachelez, Philippe Vergne
“Nata?a Petre?in-Bachelez”中的问号出现在原始数据中,可能是先前 encoding/decoding 问题的结果。