Ich habe das folgende Wort, das ich über einen Webdienst abrufe: André
In Python sieht der Wert wie folgt aus: "Andr \u00c3\u00a9 ". Die Eingabe wird dann dekodiert mit json.loads
:
>>> import json
>>> json.loads('{"name":"Andr\\u00c3\\u00a9"}')
>>> {u'name': u'Andr\xc3\xa9'}
Wenn ich die oben genannten in einer utf8 MySQL-Datenbank speichern, werden die Daten wie die folgenden mit Django gespeichert:
SomeObject.objects.create(name=u'Andr\xc3\xa9')
Die Abfrage der Namensspalte von einer mysql-Shell aus oder die Anzeige auf einer Webseite ergibt: André
Die Webseite wird in utf8 angezeigt:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Meine Datenbank ist in utf8 konfiguriert:
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
Wie kann ich das Wort André von einem Webdienst abrufen, es ordnungsgemäß und ohne Datenverlust in einer Datenbank speichern und es auf einer Webseite in seiner ursprünglichen Form anzeigen?