Question

J'ai les données suivantes: Trollhättan

  • Si j'imprimer et mettre en place l'en-tête de utf-8, alors ceci est la sortie dans le navigateur.

  • Si je ne suis pas la mise en place du utf-8 dans l'en-tête, Trollhättan. Cependant, quand je stocker les données dans la base de données et la vérification par phpmyadmin, je reçois la chaîne suivante:. Trollhättan

  • Quand je suis en train de l'en-tête à utf-8, je reçois cette chaîne: Trollhättan à côté de cette Trollhättan.

Depuis la table est latin1_swedish_ci, dois-je utiliser dans la table UTF-8?

Était-ce utile?

La solution

Voici la liste des sous classements 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 appartient à latin1

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)

Le plus proche UTF8 pour votre collation est 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)

CAVEAT

Vous pouvez expérimenter avec latin1, changer le jeu de caractères et la collation de la colonne individuelle dans le tableau, ou peut-être les deux. À tout le moins, utiliser latin1 pour l'affichage dans phpMyAdmin.

Vous pouvez Tweek et expérimenter avec la base de données faisant ensemble un ensemble et la collation de caractères spécifique en utilisant ALTER DATABASE .

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

Assurez-vous de faire une sauvegarde de la base de données et de le charger dans un dev / DB mise en scène et puis exécutez ALTER DATABASE contre dev / mise en scène.

Autres conseils

Vous devez vous assurer que lorsque vous « le stockage des données dans la base de données », client vous utilisez utilise UTF8. Ensuite, la mise en l'en-tête http UTF8 complète le voyage aller-retour.

La surprise est qu'il importe peu ce que le jeu de caractères est utilisé dans la base de données (bien qu'il pourrait bien être pratique pour que, pour être UTF8 aussi).

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top