Oto mój kod:Dlaczego na końcu mojego ciągu pojawia się znak nowej linii, kiedy kończę dekodowanie i kodowanie?
def hex_to_base64(hex_string):
clear = hex_string.decode("hex")
print(clear)
base64 = clear.encode("base64")
print(base64)
return base64
hexstring = "49276d206b696c6c696e6720796f757220627261696e206c696b65206120706f69736f6e6f7573206d757368726f6f6d"
result = hex_to_base64(hexstring)
# verify results
if result == 'SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t':
print("Yuuuup!!! %r" % result)
else:
print("Nope! %r" % result)
Moje wyniki testu weryfikacji zawodzi. Wydrukowany:
Nope! 'SSdtIGtpbGxpbmcgeW91ciBicmFpbiBsaWtlIGEgcG9pc29ub3VzIG11c2hyb29t\n'
Skąd się bierze "\ n" znak nowej linii? Mógłbym go rozebrać, żeby przejść test, ale czuję, że to oszustwo.
To jest dokładnie ta informacja, której szukałem. Dzięki. – quakkels
Kodowanie zawartości MIME Base64 powoduje, że używana jest maksymalna długość linii, a nowe linie są wstawiane, aby zachować tę długość. Czy możesz wyjaśnić więcej? W jaki sposób końcowy znak nowej linii utrzymuje długość? – Codefor
MIME dodatkowo wymusza długość linii składającą się z 76 znaków plus CRLF. kiedy łańcuch znaków jest wystarczająco duży (powiedzmy 100 bajtów), czy powinniśmy wstawić CRLF w środku ciągu wyjściowego, czy dodać tylko końcową CRLF? – Codefor