Danke für die ursprüngliche Antwort hier. Mit Python 3 war die folgende Codezeile in Ordnung:
print(json.dumps(result_dict,ensure_ascii=False))
Überlegen Sie, nicht zu viel Text im Code zu schreiben, wenn es nicht zwingend erforderlich ist.
Dies könnte für die Python-Konsole ausreichend sein. Um jedoch einen Server zu befriedigen, müssen Sie möglicherweise das Locale wie hier erklärt einstellen (wenn es sich um Apache 2 handelt) Einstellen von LANG und LC_ALL bei Verwendung von mod_wsgi
Installieren Sie im Grunde he_IL oder was auch immer Sprachlocale auf Ubuntu. Überprüfen Sie, ob es nicht installiert ist:
locale -a
Installieren Sie es, wobei XX Ihre Sprache ist:
sudo apt-get install language-pack-XX
Zum Beispiel:
sudo apt-get install language-pack-he
Fügen Sie den folgenden Text zu /etc/apache2/envvrs hinzu
export LANG='he_IL.UTF-8'
export LC_ALL='he_IL.UTF-8'
Dann sollten Sie hoffentlich keine Python-Fehler von Apache wie folgt erhalten:
print (js) UnicodeEncodeError: 'ascii' codec can't encode characters in position 41-45: ordinal not in range(128)
Versuchen Sie auch in Apache, UTF zur Standardcodierung zu machen, wie hier erklärt: Wie ändere ich die Standardcodierung auf UTF-8 für Apache
Tun Sie dies frühzeitig, da Apache-Fehler schwer zu debuggen sein können und Sie möglicherweise fälschlicherweise denken, dass sie von Python stammen, was in dieser Situation möglicherweise nicht der Fall ist.