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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/0703709f-6503-4af5-bd4f-4485620b3a6d%40googlegroups.com.