PHP-MySQL et UTF-8

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


mikaweb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 206
Inscription: Mer Juil 04, 2007 20:57

PHP-MySQL et UTF-8

Message le Sam Déc 15, 2007 12:26

Bonjour,

Je suis actuellement en train de passer un de mes sites entièrement en UTF-8 venant d'ISO je n'ai jamais eu de gros souci jusqu'à maintenant...

Il y a de plus en plus de monde qui poste des articles et certains utilisent des caractères non reconnus par ISO donc j'ai choisi d'aller sur un format de donnée plus large.

Ma question est simple, lorsque je rentre un é ou un è dans ma base de donnée, qu'est ce qui sera finalement affiché dedans ? é ou é ou encore autre chose ?

Je me pose la question car avec Notepad++ par exemple il suffit de mettre en UTF-8 sans Bom sans pour autant avoir besoin de mettre des é dans le fichier. Si je vais sur un site utf-8 que je connais, je met afficher la source, il affichera pleins de é alors que ce site est statique :roll:

Bref je ne sais pas si je suis assez clair, si ce n'est pas le cas veuillez me le dire et je tacherais d'expliquer un peu mieux mon "problème"

lefou
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 122
Inscription: Mar Juin 07, 2005 14:10

Message le Sam Déc 15, 2007 12:29

Le é c'est pour l'ISO donc en utf 8 il t'affichera é et non é.
Bref pour utf 8, c'est é.

darkjukka
WRInaute passionné
WRInaute passionné
 
Messages: 612
Inscription: Sam Avr 28, 2007 12:34

Message le Sam Déc 15, 2007 13:00

Euh, mon site est en UTF-8 et si je met "é" le caractère n'est pas reconnu alors que é devient "é" donc je ne suis pas certains de ce que tu dis.

@mikaweb, perso pour l'affichage de texte provenant d'une base de données (où les "é" apparaissent bien "é"), j'utilise la fonction preg_replace pour changer le "é" en é et pas de soucis, j'ai mis tout les caractères que je connais et je n'ai plus à y penser.


mikaweb
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 206
Inscription: Mer Juil 04, 2007 20:57

Message le Sam Déc 15, 2007 13:06

Oui mais le but serait que je n'y ait même pas à y penser...
Si un mec met un signe que je n'ai pas mis dans mon preg_replace sa fout le bordel....

J'aimerais une gestion automatique, un simple utf8_encode avant d'envoyer dans la bdd ne suffit pas ?

darkjukka
WRInaute passionné
WRInaute passionné
 
Messages: 612
Inscription: Sam Avr 28, 2007 12:34

Message le Sam Déc 15, 2007 13:09

La c'est hors de mes compétences, je t'ai donné la soluce que j'utilise car c'est uniquement pour afficher mes news que j'en ai besoin donc j'ai pas de caractères "éxotiques" puisque je suis le seul à poster.
Je traite a la sortie de la BDD en fait, pas à l'entrée.


gael@aventure
Nouveau WRInaute
 
Messages: 45
Inscription: Sam Nov 04, 2006 1:57

Message le Sam Déc 15, 2007 15:17

mikaweb a écrit: un simple utf8_encode avant d'envoyer dans la bdd ne suffit pas ?

Bonjour,
J'ai envie de te dire, essaie ;)
Mais je pense tu es sur la bonne voie

Suis pas un pro de l'utf8 mais je sais aussi que pour l'affichage correct il vaut mieux convertir tes fichiers à la main avec bloc note par exemple.
fichier > enregistrer sous >sélection du codage

Enfin et surtout bien déclarer tes entêtes et ta balise Meta charset

Bon courage


Chacho
WRInaute discret
WRInaute discret
 
Messages: 64
Inscription: Dim Sep 16, 2007 18:42

Message le Sam Déc 15, 2007 18:22

Si Apache2 est configuré en utf-8 ce qui est le cas par défaut, un simple :
Code: Tout sélectionner
mysql_connect('XX','XX','XX');
mysql_select_db('XX');
mysql_query("SET NAMES 'utf8'");

Oublie pas aussi avec phpmyadmin par ex, de modifier l'interclassement des tables ( moi j'ai utf8_general_ci )

SET NAMES indique ce qui est dans la commande SQL que le client envoie. Par conséquent, SET NAMES cp1251 indique au serveur : ``les futurs messages fournis par ce client seront dans le jeu de caractères cp1251'' et le serveur est libre de les traduire dans son propre jeu de caractères, éventuellement.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Dim Déc 16, 2007 9:17

mikaweb a écrit:Si un mec met un signe que je n'ai pas mis dans mon preg_replace sa fout le bordel....


a moins d'avoir un site a connotation international sinon je ne vois pas l'interet de passer en utf8. Nous sommes en terre latine ;)
Si tu recois des données 'bizarre', commence pas voir le charset de tes documents.
Les données qui sont a passer dans un langage plus international sont celles qui s'adressent aux moteurs internationaux. Donc la balise title et le meta description ou tout les caractereres spéciaux doivent etre passer en iso.


Chacho
WRInaute discret
WRInaute discret
 
Messages: 64
Inscription: Dim Sep 16, 2007 18:42

Message le Dim Déc 16, 2007 12:23

J'ai passé tous mes sites en utf8 et je n'ai aucun problème maintenant que j'ai compris comment le gérer. Plus de prises de tête avec les accents, on peut rentrer n'importe quel caractère comme tel.
Pourquoi rester en iso quand il est tellement facile de passer à lutf. Vivement que tout le monde y passe et qu`on oublie ces pb archaïques de caractères


Marie-Aude
WRInaute accro
WRInaute accro
 
Messages: 4931
Inscription: Lun Juin 05, 2006 14:15

Message le Dim Déc 16, 2007 16:32

Merci Chacho :)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Déc 17, 2007 13:17

Chacho a écrit:J'ai passé tous mes sites en utf8 et je n'ai aucun problème maintenant que j'ai compris comment le gérer. Plus de prises de tête avec les accents, on peut rentrer n'importe quel caractère comme tel.
Pourquoi rester en iso quand il est tellement facile de passer à lutf. Vivement que tout le monde y passe et qu`on oublie ces pb archaïques de caractères


Je comprend bien. Si demain j'ai un nouveau projet, pas de probleme car un simple CREATE DATABASE projet CHARACTER SET UTF8 me suffira... mais de la à repasser mes sites en utf8, je vois pas du tout l'interet, en plus je me vois mal rajouter des mb_ devant mes fonctions de chaines...

Par contre je suis d'accord que le futur appartient a l'utf8 :D


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités