Мне нужно преобразовать некоторые строки, используя кодировку Base64, и был рад видеть, что мне не пришлось катить свой собственный конвертер - Java предоставляет один с javax.xml.bind.DataConverter
.Однако у него есть некоторые проблемы.Вот вывод моего времени с Jython REPL:
>>> import javax.xml.bind.DatatypeConverter as DC
>>> import java.lang.String as String
>>> def foo(text):
... return DC.printBase64Binary(DC.parseBase64Binary(String(text)))
...
>>> foo("hello")
'hell'
>>> foo("This, it's a punctuated sentence.")
'Thisitsapunctuatedsenten'
>>> foo("\"foo\" \"bar\"")
'foob'
>>> foo("\"foo\" \"bar\"12")
'foobar12'
>>> foo("\"foo\" \"bar\"1")
'foob'
Как вы можете видеть, он вообще не обрабатывает не алфавитно-цифровые символы, а также часто - но не всегда - усекает строкуна два символа.
Я думаю, может быть, пришло время написать свой собственный класс, но теперь я обеспокоен тем, что либо: а) я не могу прочитать Javadoc или что-то б) класс неработать как положено.
Так что любая помощь очень ценится;заранее спасибо.