Jump to content
Sign in to follow this  
Ceubex

Pb conversion de ISO-8859-1 à utf8

Rate this topic

Recommended Posts

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

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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

Edited by captain_torche
Inutile de citer le message précédent; on vient de le lire.

Share this post


Link to post
Share on other sites

Serait-ce des apostrophes du genre celle de word ? ( ͗)

Share this post


Link to post
Share on other sites

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, ...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...