Maison >développement back-end >tutoriel php >Comment réparer l'encodage UTF-8 cassé dans MySQL et PHP ?

Comment réparer l'encodage UTF-8 cassé dans MySQL et PHP ?

DDD
DDDoriginal
2024-11-26 05:24:09975parcourir

How to Fix Broken UTF-8 Encoding in MySQL and PHP?

Réparer l'encodage UTF-8 cassé

Lorsque vous traitez l'encodage UTF-8, il est courant de rencontrer des caractères cassés comme î en raison d'un manutention. Ce problème peut provenir de la configuration de la base de données, des paramètres PHP ou même de l'encodage de l'éditeur de texte.

Jeu de caractères MySQL et en-tête PHP

Assurez-vous que votre base de données MySQL utilise un UTF. -8 classement comme utf8_general_ci. De plus, vérifiez que votre code PHP inclut un en-tête UTF-8 approprié, tel que :

<?php
header("Content-Type: text/html; charset=utf-8");
?>

Vérification du Bloc-notes et de phpMyAdmin

Confirmez que le Bloc-notes est configuré pour utiliser UTF-8 sans nomenclature. Dans phpMyAdmin, assurez-vous que le codage des caractères est défini sur UTF-8 pour l'affichage des données et l'exportation SQL.

Identification des caractères accentués brisés

Bien que tous les caractères accentués ne puissent pas être Les séquences brisées courantes affectées incluent î, àet ü. Ces caractères représentent respectivement des versions accentuées de « e », « i » et « u ».

Solution : correction du double encodage

Si vous soupçonnez un double encodage Caractères UTF-8, pensez à utiliser la procédure suivante :

  1. Dumpez vos données MySQL en utilisant :
mysqldump -h DB_HOST -u DB_USER -p DB_PASSWORD --opt --quote-names \
--skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql
  1. Rechargez les données dans un jeu de caractères UTF-8 :
mysql -h DB_HOST -u DB_USER -p DB_PASSWORD \
--default-character-set=utf8 DB_NAME < DB_NAME-dump.sql

Ce processus convertit de force les caractères doublement codés en caractères valides UTF-8.

Source :
[Correction du double Données UTF-8 codées dans MySQL](http://blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn