> However the same version of jython on windows Are you sure you're running **J**ython on Windows and not Python? The behavior you're describing sounds like the differences between Jython and CPython 3.
On Fri, Jul 8, 2022 at 6:17 AM Sushant Sawant <[email protected]> wrote: > > Hi all, > > After further debugging more, here are the observation, > > > > No matter what encoding I do, reading string is giving a unicode string in > jython nifi. > M unable to parse quotable printable characters since it requires a byte > string as object. > > > > String is read from email body, is u'some email body' and not b'some email > body'. > > > However the same version of jython on windows gives b'some email body' as a > proper str object. > > Any help guys m stuck since 3 days in this. > > > On Thu, Jul 7, 2022 at 12:46 PM Sushant Sawant <[email protected]> > wrote: >> >> Hi all, >> >> Use case is to read email and extract body and other meta data and save it >> in mongo. >> >> msg.get_payload() >> >> when I execute above line m getting, "2022=\n 15:23" in response. Quotable >> printable. >> >> msg.get_payload(decode=True) >> >> when I execute above line m getting, "2022 15:23" in response. Quotable >> printable is removed.This is as expected and works locally, when I pass eml >> file. I am using the later one, "decode=True" on server but it is not >> decoding quotable printable. >> >> quopri.decodestring(body) >> >> Then I tried above, but still it is not decoding as expected.Here is entire >> the script m using in local, running on Jython 2.7.2 >> >> import email >> import quopri >> msg = email.message_from_file(open("some_eml.eml")) >> body = "" >> if msg.is_multipart(): >> for part in msg.walk(): >> ctype = part.get_content_type() >> cdispo = str(part.get('Content-Disposition')) >> if (ctype == 'text/plain' or ctype == 'text/html') and 'attachment' >> not in cdispo: >> body = part.get_content() # decode >> print(body) >> break >> else: >> body_byte = msg.get_payload() >> print(repr(body_byte)) >> body = body_byte.decode("utf-8", 'ignore') >> print(repr(body)) >> utf = quopri.decodestring(body) >> text = utf.decode('utf-8', errors='replace') >> print(repr(text)) >> print(text) >> >> One observation is, it is behaving as old script. Have restarted cluster. >> Also did this, but didn't helped.nifi.flowcontroller.autoResumeState=false >> nifi.swap.manager.implementation=org.apache.nifi.controller.FileSystemSwapManager >> nifi.queue.swap.threshold=20000 >> nifi.swap.in.period=5 sec >> nifi.swap.in.threads=1 >> nifi.swap.out.period=5 sec >> nifi.swap.out.threads=4Any help appreciated.Also created question >> here,https://community.cloudera.com/t5/Support-Questions/ExecuteScript-python-2-7-not-working-as-expected-on-server/td-p/346941 >>
