Aller au contenu

Pb conversion de ISO-8859-1 à utf8


Sujets conseillés

Posté

Bonjour,

Je dois exploiter une bdd avec des champs codés en utf8 et d'autres en ISO-8859-1 (oui je sais c'est très intelligent). Quand je mets le <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> tout s'affiche bien sauf le bloc récalcitrant et quand je met <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />, le bloc est bien mais pas le reste.

Ce qui me chiffonne c'est que quand le http-equiv est sur utf-8, et que je fais utf8_encode sur le bloc qui pose problème ça ne marche pas. Inversement s'il est sur ISO-8859-1 et que je fais utf8_decode sur le reste tout s'affiche bien. Évidemment pour certaines raisons le http-equiv doit être en utf8 et je suis bloqué.

Ce champs qui me pose problème est un type blob dans la bdd codé en binaire (je crois que c'est du latin1).

Quelqu'un a-t-il une idée de pourquoi cela bug-t-il ?

Merci d'avance

Posté

Le truc le plus proche de la réalité que j'ai trouvé pour ce type de problème serait de détecter l'encodage en mode strict (sinon c'est trop foireux) :


$isUtf = (bool) mb_detect_encoding($str, 'UTF-8', true);
if(!$isUtf)
print mb_convert_encoding($str, "ISO-8859-1", "UTF-8");
else print $str;

Tout est alors UTF, si il reste des soucis, quid de tes en-entêtes HTTP (pas ta balise head), de l'encodage de ta page ?

Posté (modifié)

Merci. Tu as juste inversé l'iso et l'utf dans mb_convert_encoding. Mais c'est la bonne fonction. Par contre je ne sait pas pourquoi les apostrophe ne passent pas. Enfin je suis pas à ça prête

Modifié par captain_torche
Inutile de citer le message précédent; on vient de le lire.
Posté

C'est un casse tête la transition ISO Utf8...

Voici les éléments à prendre en compte :

- Es ce que ton champs en base de donnée est codé en UTF8

- Es ce que ton fichier (html ou php) est au format UTF8 (tu peux changer le codage avec notepad++ par ex)

- Et ensuite, la balise méta, ...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...