Ceubex Posté 12 Février 2012 Posté 12 Février 2012 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
SStephane Posté 13 Février 2012 Posté 13 Février 2012 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 ?
Ceubex Posté 13 Février 2012 Auteur Posté 13 Février 2012 (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é 13 Février 2012 par captain_torche Inutile de citer le message précédent; on vient de le lire.
SStephane Posté 14 Février 2012 Posté 14 Février 2012 Serait-ce des apostrophes du genre celle de word ? ( ͗)
Neoxy Posté 20 Février 2012 Posté 20 Février 2012 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, ...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant