Beste medetweakers,
deze week probeer ik een Pylons 1.0-applicatie te plaatsen onder Apache. Tot nu toe hebben we alle ontwikkelingen gedaan met behulp van paster, voor het eenvoudigere debug en testwerk. Daarin kwamen we in totaal geen problemen tegen.
Echter, onder mod_wsgi krijgen we overal UnicodeDecodeErrors waar we karakters gebruiken buiten de ASCII-range, zoals bijvoorbeeld ë, ï of à. Voorbeeld van een stuk mako-template die zo'n code genereert:
Waarin getHeadline een unicode-string teruggeeft die "hällo" heet.
De configuratie van Pylons en mako is hier al opgericht, zie het volgende segment uit de environment.ini:
We hebben ondertussen ook al andere dingen geprobeerd die we op willekeurige sites vonden. Veel suggesties waren voor 0.9.7 of lager en moeilijk of niet toepasbaar. Anderen maakten gewoon niets uit. Een mooie samenvatting daarvan:
• Entiteiten zoals ${c.candidate.getHeadline()} vervangen door ${c.candidate.getHeadline() | unicode};
• Input en output encoding expliciet geconfigureerd;
• Bestanden prefixen met encoding-regel (# -*- encoding: utf-8 -*-);
• Een default-filter toegepast.
Maar het mocht niet baten. Hebben jullie allicht een idee waardoor het komt?
deze week probeer ik een Pylons 1.0-applicatie te plaatsen onder Apache. Tot nu toe hebben we alle ontwikkelingen gedaan met behulp van paster, voor het eenvoudigere debug en testwerk. Daarin kwamen we in totaal geen problemen tegen.
Echter, onder mod_wsgi krijgen we overal UnicodeDecodeErrors waar we karakters gebruiken buiten de ASCII-range, zoals bijvoorbeeld ë, ï of à. Voorbeeld van een stuk mako-template die zo'n code genereert:
HTML:
1
| <p>${c.candidate.getHeadline()}</p> |
Waarin getHeadline een unicode-string teruggeeft die "hällo" heet.
De configuratie van Pylons en mako is hier al opgericht, zie het volgende segment uit de environment.ini:
Python:
1
2
3
4
5
6
7
| config['pylons.app_globals'].mako_lookup = TemplateLookup( directories=paths['templates'], error_handler=handle_mako_error, module_directory=os.path.join(app_conf['cache_dir'], 'templates'), input_encoding='utf-8', default_filters=['escape'], output_encoding='utf-8', imports=['from webhelpers.html import escape']) |
We hebben ondertussen ook al andere dingen geprobeerd die we op willekeurige sites vonden. Veel suggesties waren voor 0.9.7 of lager en moeilijk of niet toepasbaar. Anderen maakten gewoon niets uit. Een mooie samenvatting daarvan:
• Entiteiten zoals ${c.candidate.getHeadline()} vervangen door ${c.candidate.getHeadline() | unicode};
• Input en output encoding expliciet geconfigureerd;
• Bestanden prefixen met encoding-regel (# -*- encoding: utf-8 -*-);
• Een default-filter toegepast.
Maar het mocht niet baten. Hebben jullie allicht een idee waardoor het komt?