python3 Standardcodierung UnicodeDecodeError ascii mit Apache WSGI

8
%Vor%

Ich benutze ein Framework namens geistreich und verwende das Web .py , um seine Vorlage zu rendern.

%Vor%

Das Rendering funktioniert auf meinem lokalen Host , aber nicht auf meinem Staging-Server .

Beide betreiben python3. Ich sehe, dass web.py utf-8 auf

erzwingt

nur die Kodierung in Python2 (das liegt nicht in meinen Händen)

%Vor%

Hier ist der Stack-Trace

%Vor%

Mein html enthält hebew Zeichen, kleines Beispiel

%Vor%

und ich öffne es so:

%Vor%

und die Zeile, in der die Codierung fehlschlägt, sind die hebräischen Zeichen.

Ich habe versucht, einige Umgebungsvariablen in ~/.bashrc :

zu setzen %Vor%

unter dem Benutzer centos

Das geniale Framework wird als pip unter python3.5 site-packages installiert. und es wurde von einem Apache-Server unter dem Benutzer apache

bedient

Versucht, die Umgebungsvariablen im Code (während der Initialisierung der App) so einzustellen, dass die Apache-WSGI sie erkennt

%Vor%

Ich habe die /etc/httpd/conf/httpd.conf mit der Methode setenv bearbeitet:

%Vor%

und neu gestartet mit sudo service httpd restart und immer noch kein Glück.

Meine Frage ist, was ist die beste Praxis, um das zu lösen. Ich verstehe, dass es Hacks dafür gibt, aber ich möchte verstehen, was die Unterstreichungsursache ist und wie sie gelöst werden kann.

Danke!

    
WebQube 12.10.2017, 06:54
quelle

2 Antworten

2

fand schließlich die Antwort beim Lesen der Datei geändert von

%Vor%

bis

%Vor%

Wenn jemand einen allgemeineren Ansatz hat, der funktioniert, akzeptiere ich seine Antwort

    
WebQube 14.10.2017, 08:48
quelle
1

Eine Python 2 + 3 Lösung wäre:

%Vor%

Siehe die Dokumentation von io.open .

>     
Laurent LAPORTE 20.10.2017 11:36
quelle

Tags und Links