Hi Clemens, thanks for your answer, but I think that your code does not help to solve the problem. I just ran some more tests and if the 'content' variable only contains ASCII characters (tried 'Data without german umlauts.'), the problem happens all the same. IMHO it is not a problem with non ASCII characters and therefore not solved by escaping them by any means.
Maybe I had the wrong focus while writing the post. Kind regards, Silvan Am Freitag, 28. Februar 2020 10:29:53 UTC+1 schrieb Clemens: > > Hi Silvan, > > since I've also to handle "dschörmän" Umlauts, I've put a converstion in > the following procedure: > > > > > > > > > > > > > > > > > > > *import cgiimport sys# > -------------------------------------------------------------------------# > convert_special_chars(label)## Converts string to be compatible to UTF-8# > and to HTML (e.g. ä to ä)## parameter: label as string# > -------------------------------------------------------------------------def > convert_special_chars(label): if sys.version_info[0] == 2: # is Python > 2.x label = label.decode('utf-8') label = cgi.escape(label) > label = label.encode('ascii', 'xmlcharrefreplace') return label* > > Have a try, hope it helps! > > Best regards > Clemens > > > > On Friday, February 28, 2020 at 10:15:04 AM UTC+1, Silvan Marco Fin wrote: >> >> Hi! >> I have a problem with pdf output running in python3 environment. The >> problem I'm trying to solve is more complex, but I managed to strip it down >> to a very small example. If I get this running, I'm sure to manage in my >> actual situation. >> >> I created a new application with a controller like this: >> >> # -*- coding: utf-8 -*- >> >> def index(): >> return dict( >> data=UL( >> A('Output html', _href=URL(print, extension='html')), >> A('Output pdf', _href=URL(print, extension='pdf')) >> ), >> message="hello from tiatpi.py") >> >> def print(): >> return dict(content='Data with "dschörmän" Umlauts') >> >> Pressing the first link I get presented with expected web page. >> Pressing on the second link I receive an Internal error: >> >> 1. >> 2. >> 3. >> 4. >> 5. >> 6. >> 7. >> 8. >> 9. >> 10. >> 11. >> >> Traceback (most recent call last): >> File "/mnt/c/Users/Silvan Marco >> Fin/Desktop/Working/web2py/gluon/restricted.py", line 219, in restricted >> exec(ccode, environment) >> File "/mnt/c/Users/Silvan Marco >> Fin/Desktop/Working/web2py/applications/pdf_test/views/generic.pdf", line 9, >> in <module> >> pass >> File "/mnt/c/Users/Silvan Marco >> Fin/Desktop/Working/web2py/gluon/globals.py", line 434, in write >> self.body.write(to_native(xmlescape(data))) >> File "/mnt/c/Users/Silvan Marco >> Fin/Desktop/Working/web2py/gluon/packages/dal/pydal/_compat.py", line 136, >> in to_native >> return obj.decode(charset, errors) >> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 10: >> invalid continuation byte >> >> >> Bevore assembling this small snippet I experimented with the whole >> situation for some time now and I never produced anything else than >> exceptions, most of them some form of DecordeErorr or EncodingError, so I >> assume, there is something wrong with either fpdf or the XML() helper. >> I would greatly appreciate any help on this! >> >> Kind regards, >> Silvan >> >> Additional Information: >> Environment: >> I'm running an ubuntu in Windows 10 pro 1909 WSL: >> silvan@Nepumuk:~$ lsb_release -a >> No LSB modules are available. >> Distributor ID: Ubuntu >> Description: Ubuntu 18.04.4 LTS >> Release: 18.04 >> Codename: bionic >> >> and from web21py admin pages: 2.18.5-stable+timestamp.2019.04.08.04.22.03 >> (läuft auf Rocket 1.2.6, Python 3.6.9) >> >> But the problem shows up on native Ubuntu Linux as well. >> > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/0703709f-6503-4af5-bd4f-4485620b3a6d%40googlegroups.com.