[Résolu] Afficher des caractères slovaques...

WRInaute occasionnel
Bonjour,
J'ai une base de donnée mySQL en utf8_bin qui comporte des enregistrement dans tout un tas de langues...
Pour que les caractères accentués et "exotiques" s'affichent correctement j'ai placé un
Code:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
après la connexion à mySQL et j'affiche mes résultats avec la foncton utf8_decode.
Ca fonctionne bien saufs pour quelques caractères, notamment les caractères slovaques.
Par exemple :
Spoločenskovedný ústav, Košice
m'affiche
Spolo?enskovedný ústav, Ko?ice
Je patauge un peu...
Merci pour votre aide.

Eric.

Edit: Je ne ne sais pas si c'est du polonais en fait :? mais le problème est le même... ;-)
 
WRInaute accro
Re: Afficher des caractères polonais...

[--Eric--] a dit:
j'affiche mes résultats avec la foncton utf8_decode.

Ca veut dire que tu convertis en ISO-8859-1, qui ne contient pas les caractères utilisés pour le polonais et autres langues d'europe de l'Est, et je ne parle même pas du cyrillique, de l'arabe, des kanji, et j'en passe...

Reste en UTF-8 de bout en bout: enlève le utf8_decode, envoie tes pages avec le charset: UTF-8 (évidemment ça veut dire que tout le reste de ton texte, y compris HTML et autres données provenant de la BDD doivent être en UTF-8. Au pire avec utf8_encode tu pourras convertir ce qui ne l'est pas).

[--Eric--] a dit:
Spoločenskovedný ústav, Košice
Edit: Je ne ne sais pas si c'est du polonais en fait :? mais le problème est le même... ;-)

Je penche pour du Slovaque (en tous cas mes outils de détection de langue le pensent, mais avec 3 mots ce n'est pas forcément très fiable).

Jacques.
 
WRInaute occasionnel
Merci pour ta réponse.

J'enlève aussi
Code:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
??

- J'ai enregistré mon fichier php en utf8 (j'utilise EditPlus)
- J'ai ajouté :

Code:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

et enlevé donc les utf8_decode() mais maintenant je n'ai plus que les accents aigües et graves qui s'affichent correctement tout les autres sont remplacés par des "?"
 
WRInaute accro
[--Eric--] a dit:
J'enlève aussi
Code:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
??

Je ne suis pas un grand spécialiste de mysql (plutôt postgresql moi), mais je ne crois pas, non. Le but du jeu est de faire en sorte que tout soit en UTF-8.

[--Eric--] a dit:
maintenant je n'ai plus que les accents aigües et graves qui s'affichent correctement tout les autres sont remplacés par des "?"

Dans le texte qui vient d'où? De la base de données, du PHP, de fichiers externes (ou d'autres fichiers PHP "inclus")...?

Jacques.
 
WRInaute accro
[--Eric--] a dit:
Si je laisse
Code:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");

Ca me donne :

Spolo�enskovedný ústav, Košice

:evil:

Au choix, soit le fait que tu es en UTF-8 n'est pas reconnu par ton browser (tu n'aurais pas deux meta http-equiv=content-type?), soit tu as quelque chose qui convertit à nouveau de l'ISO en UTF-8 (et comme c'est déjà de l'UTF-8, forcément, ça ne ressemble plus à rien), genre un utf8_encode pas nécessaire. Dans le pire des cas, c'est le contenu de la base qui n'est pas cohérent, mais ça ne me paraît pas compatible avec le comportement précédent (avec le utf8_decode). Ceci dit, comme déjà dit, je ne suis pas le plus grand pro de mysql...

Ce serait probablement plus simple en voyant la page, elle est accessible? Adresse par MP si tu préfères...

Jacques.
 
WRInaute occasionnel
En cherchant un peu j'ai vu qu'une balise <meta> n'avait aucune utilité si le serveur Apache dit qu'on est en iso-machinchose... le navigateur n'en tient pas compte.

J'ai donc ajouté :

Code:
header("Content-type : text/html ; charset=utf-8") ;

laissé

Code:
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");

et tous mes résultats s'affichent désormais correctement. Merci pour l'aide précieuse, je commence à bcp mieux comprendre ces histoire d'encodage !
 
Discussions similaires
Haut