Frage

Ich habe die folgenden Daten:Trollhättan

  • Wenn ich den Header ausdrucken und aufstelle utf-8, Dann ist dies der Ausgang im Browser.

  • Wenn ich das nicht eingerichte utf-8 im Kopfball, Trollhättan. Wenn ich die Daten jedoch in der Datenbank speichere und durchprüfe phpmyadmin, Ich bekomme die folgende Zeichenfolge: Trollhã gal.

  • Wenn ich den Header aufstelle utf-8, Ich bekomme diese Zeichenfolge: Trollhättan daneben Trollhättan.

Da ist der Tisch latin1_swedish_ci, Muss ich in der Tabelle verwenden UTF-8?

War es hilfreich?

Lösung

Hier ist die Liste der Kollationen unter UTF-8

mysql> select * from information_schema.collations where CHARACTER_SET_NAME = 'utf8';
+--------------------+--------------------+-----+------------+-------------+---------+
| COLLATION_NAME     | CHARACTER_SET_NAME | ID  | IS_DEFAULT | IS_COMPILED | SORTLEN |
+--------------------+--------------------+-----+------------+-------------+---------+
| utf8_general_ci    | utf8               |  33 | Yes        | Yes         |       1 |
| utf8_bin           | utf8               |  83 |            | Yes         |       1 |
| utf8_unicode_ci    | utf8               | 192 |            | Yes         |       8 |
| utf8_icelandic_ci  | utf8               | 193 |            | Yes         |       8 |
| utf8_latvian_ci    | utf8               | 194 |            | Yes         |       8 |
| utf8_romanian_ci   | utf8               | 195 |            | Yes         |       8 |
| utf8_slovenian_ci  | utf8               | 196 |            | Yes         |       8 |
| utf8_polish_ci     | utf8               | 197 |            | Yes         |       8 |
| utf8_estonian_ci   | utf8               | 198 |            | Yes         |       8 |
| utf8_spanish_ci    | utf8               | 199 |            | Yes         |       8 |
| utf8_swedish_ci    | utf8               | 200 |            | Yes         |       8 |
| utf8_turkish_ci    | utf8               | 201 |            | Yes         |       8 |
| utf8_czech_ci      | utf8               | 202 |            | Yes         |       8 |
| utf8_danish_ci     | utf8               | 203 |            | Yes         |       8 |
| utf8_lithuanian_ci | utf8               | 204 |            | Yes         |       8 |
| utf8_slovak_ci     | utf8               | 205 |            | Yes         |       8 |
| utf8_spanish2_ci   | utf8               | 206 |            | Yes         |       8 |
| utf8_roman_ci      | utf8               | 207 |            | Yes         |       8 |
| utf8_persian_ci    | utf8               | 208 |            | Yes         |       8 |
| utf8_esperanto_ci  | utf8               | 209 |            | Yes         |       8 |
| utf8_hungarian_ci  | utf8               | 210 |            | Yes         |       8 |
| utf8_sinhala_ci    | utf8               | 211 |            | Yes         |       8 |
+--------------------+--------------------+-----+------------+-------------+---------+
22 rows in set (0.03 sec)

latin1_swedish_ci gehört zu Latein1

mysql> select * from information_schema.collations where COLLATION_NAME = 'latin1_swedish_ci';
+-------------------+--------------------+----+------------+-------------+---------+
| COLLATION_NAME    | CHARACTER_SET_NAME | ID | IS_DEFAULT | IS_COMPILED | SORTLEN |
+-------------------+--------------------+----+------------+-------------+---------+
| latin1_swedish_ci | latin1             |  8 | Yes        | Yes         |       1 |
+-------------------+--------------------+----+------------+-------------+---------+
1 row in set (0.03 sec)

Der nächste UTF8 für Ihre Zusammenfassung ist ID 200

mysql> select * from information_schema.collations where ID = 200;
+-----------------+--------------------+-----+------------+-------------+---------+
| COLLATION_NAME  | CHARACTER_SET_NAME | ID  | IS_DEFAULT | IS_COMPILED | SORTLEN |
+-----------------+--------------------+-----+------------+-------------+---------+
| utf8_swedish_ci | utf8               | 200 |            | Yes         |       8 |
+-----------------+--------------------+-----+------------+-------------+---------+
1 row in set (0.00 sec)

VORBEHALT

Möglicherweise müssen Sie mit Latin1 experimentieren, den Zeichensatz und die Zusammenfassung der einzelnen Spalte in der Tabelle oder möglicherweise beides ändern. Verwenden Sie zumindest Latin1 für die Anzeige in phpmyadmin.

Sie können Tweek und experimentieren, um die gesamte Datenbank zu einem bestimmten Zeichensatz und einer bestimmten Kollation zu machen Datenbank ändern.

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

Stellen Sie sicher, dass Sie eine Sicherung der Datenbank erstellen, sie in ein DB/Staging -DB laden und dann die Datenbank für die DEV/Staging ausführen.

Andere Tipps

Sie müssen sicherstellen, dass Sie "die Daten in der Datenbank speichern", die, die Klient Sie verwenden UTF8. Wenn Sie dann den HTTP -Header auf UTF8 festlegen, vervollständigt es die Roundreise.

Die Überraschung ist, dass es keine Rolle spielt, welches Zeichensatz in der Datenbank verwendet wird (obwohl es möglicherweise auch für das UTF8 ist).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top