Caractères latins dans phpMyAdmin avec l'encodage UTF-8 classement
Mon site utilise:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Et cette méta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
J'ai créé ma base de données et des tables dans phpMyAdmin assurer que tout est réglé comme utf8_unicode_ci (table, des champs de base de données), même la connexion de classement.
Quand j'ai insérer des caractères latins (accents, - et des trucs comme ça) dans la base de données à l'aide d'un formulaire standard de fait en PHP, il fonctionne très bien, je peux afficher les données enregistrées dans mon site, pas de problème. Mais si je vais dans phpMyAdmin, tous les caractères latins sont tout foiré, quelque chose comme ñA±A±.
Si j'essaie de corriger les données dans phpMyAdmin, puis mon site affiche les données de manière incorrecte, avec des symboles étranges ���.
Ce qui, dans ce monde je fais mal? J'ai essayé de faire ce travail pendant des heures, sans succès.
Merci à vous tous!
OriginalL'auteur Dan H | 2010-06-04
Vous devez vous connecter pour publier un commentaire.
@Artefacto dit, cela pourrait être un problème local à phpMyAdmin.
Si phpMyAdmin est très bien (c'est à dire mis à UTF-8) et les données sont toujours à l'affiche jusqu'bizarre, puis regarder si votre base de données connexion l'utilisation de l'UTF-8?
(ou ce que vous utiliser comme une base de données de la bibliothèque)
pourrait aider si il ne l'est pas.
Pekka je faisais tout mal. Donc, dès que j'ai instancié mon MySQL classe, j'ai ajouté une nouvelle ligne à exécuter cette requête sur chaque page et maintenant tout fonctionne parfaitement. Maintenant, voici une autre question: est-il possible d'établir une sorte de défaut donc je n'ai pas besoin de courir ENSEMBLE les NOMS de tous les temps?
C'était la solution. Merci beaucoup!
OriginalL'auteur Pekka 웃
Si phpMyAdmin est montrant
ñññ
au lieu deñññ
, c'est parce que c'est l'interprétation d'un UTF-8 bytestream comme ISO-8859-1. Si votre base de données de contenu sont probablement correctes, phpMyAdmin est juste leur montrer d'une manière erronée.Je ne suis pas familier avec l'application, mais vous pouvez forcer le navigateur à lire la page en UTF-8 (généralement View > Encodage > UTF-8).
J'ai essayé de changer le Google Chrome et Firefox de l'encodage UTF-8, mais il ne fonctionne pas. phpMyAdmin est encore l'affichage des symboles étranges (oui, j'ai redémarré le navigateur).
c'est un paramètre sur phpMyAdmin est la première page (le paramètre "langue". Vous choisissez la langue et l'encodage).
Ok j'ai essayé ceci dans deux serveurs, les deux ont le même comportement. Mon phpMyAdmin maison est jeu de caractères pour MySQL: UTF-8 Unicode (utf8). J'ai essayé en passant toutes les valeurs dans mon formulaire via utf8_decode() avant de les inserts et je peux voir que tout est ok dans phpMyAdmin, mais pas dans mon site web, ce qui signifie que phpMyAdmin est le flipper problème. Cependant, comment puis-je lire des données à partir d'une installation de WordPress enregistré en UTF-8 et non pas les données sauvegardées à partir de mon propre site web?
OriginalL'auteur Artefacto
pour Scuzzu de la Question, il y a plusieurs façons:
http://www.mysqlperformanceblog.com/2007/12/18/fixing-column-encoding-mess-in-mysql/
J'aurais huit plus de liens avec des tâches différentes, mais ce site m'empêcher de les sauver...
"comme un spam mécanisme de prévention, les nouveaux utilisateurs peuvent uniquement afficher un maximum d'un lien hypertexte"
OriginalL'auteur xSMOKEx
mysql_query("SET NAMES utf8") résolu mon problème.
Problème: les Caractères affichés correctement dans phpMyAdmin, mal en HTML/PHP. Personnages: â, î, etc.
Les en-têtes sont ok (utf8), phpmyadmin affiche le contenu dans la forme correcte, mais le site continue de s'afficher question étrange marque de caractères (à l'intérieur d'un diamant noir de caractères).
Code HTML:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Solution: j'ai ajouté en php (qui précède toutes les autres requêtes):
mysql_query("SET NAMES utf8");
D'autres causes peuvent conduire à ce comportement; ce n'est qu'une partie de la solution. Vous pouvez avoir besoin de vérifier le contenu-type, la configuration du serveur web (httpd.conf), html lang /dir, jeu de caractères, etc. Toutefois, un point d'interrogation dans un diamant noir semble être plus spécifique à ce problème/solution, dans d'autres cas sont affichés 2-3 des caractères bizarres à la place de celle que vous voulez.
OriginalL'auteur Logic Industry
Après avoir fait
mysql_query("SET names 'utf8';");
Vous avez besoin également d'aller à mySQL et de définir le classement en tant que UTF-8, aussi!
Cela devrait résoudre votre problème.
Bonne chance!
OriginalL'auteur Antonio Marques
1 - Modifier le fichier:
2 - Look pour les [mysqld] entrée et d'ajouter:
De l'ensemble devrait ressembler à:
3 - Redémarrer le service MySQL!
OriginalL'auteur magickey
Si phpMyAdmin est très bien (c'est à dire mis à UTF-8) et les données sont toujours à l'affiche jusqu'bizarre, puis regarder si votre connexion de base de données en UTF-8?
Juste mis
mysql_query("SET NAMES utf8");
aprèsmysql_connect
ligne:Oui; mais contiennent pas de place de la commande.
OriginalL'auteur Iman Marashi
J'ai été battu avec le même problème et a finalement trouvé un moyen élégant pour vérifier et modifier le classement via la fonction PHP
mysqli_set_charset
. Morceau de code suivant doit être inclus entre une$conn
et un$sql
requête:J'ai trouvé la solution ici: http://php.net/manual/en/mysqli.set-charset.php
OriginalL'auteur Іван Марнянський