Aller au contenu

Sujets conseillés

Posté

Hello,

Je dois faire une version polonaise d'un site et j'ai un soucis d'affichage des textes :

Dans ma base de données j'ai un champ comme ça :

label_pl varchar(255) utf8_general_ci

Avec du texte comme ça :

Sprzedaż bezpośrednia, sieci sprzedaży, niezależny sprzedawca bezpośredni

Mais sur le site, quand j'affiche cette valeur, j'obtiens :

Sprzeda? bezpo?rednia, sieci sprzeda?y, niezale?ny sprzedawca bezpo?redni

Voilà les paramètres que j'ai tenté de régler :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//PL" &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=&quot;http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<meta http-equiv="content-language" content="pl">

Dans le httpd.conf j'ai :

AddLanguage pl .po

AddCharset ISO-8859-2 .iso-pl

et pas de DefaultCharset

J'ai aussi essayé l'iso-8859-16 mais rien n'y fait. Je m'y prends peut-être mal ? Vu que dans ce post un simple copier-coller a l'air de marcher, et que quand je prends de la base de données de mon site ça s'affiche mal.

Posté

Pour commencer, ne modifie pas le doctype : tu ne dois pas changer le "EN" en "PL".

Ensuite, tu peux essayer de passer tes pages en UTF-8.

Mais comme cela semble marcher ici (alors que le jeu de caractères est 8859-1), ça doit venir de l'encodage de ta bdd.

Posté (modifié)

Après modifications :

Champ BDD :

valeur_pl text utf8_polish_ci

HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=&quot;http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<meta http-equiv="content-language" content="pl">

Malheureusement ça ne change rien :(

Après modification du champ de la BDD j'ai vérifié que je n'ai pas eu de déformations de mots :

Exemple :

Bezpłatny dostęp do ofert.

Mais sur le site :

Bezp?atny dost?p do ofert.

Même résultat en remettant le "charset" sur "iso-8859-2".

Modifié par Neity
Posté

Je viens de tester le texte sans passer par la BDD, j'ai donc ouvert mon fichier et ai ajouté :

echo "Sprzedaż bezpośrednia, sieci sprzedaży, niezależny sprzedawca bezpośredni";

J'obtiens ceci à l'écran :

Sprzedaz bezposrednia, sieci sprzedazy, niezalezny sprzedawca bezposredni

Je n'ai donc pas les "?" quand je fais un copier coller, mais je perds les caractères quand même.

Je ne sais vraiment pas quoi faire. C'est tout bête je suis sûr.

Posté

J'ai enregistré mon fichier php en UTF8, et au moins quand je fais :

echo "Twoje kody dostępu zostały odrzucone";

J'obtiens bien un affichage des caractères.

Mais pour les textes de la base de données je déséspère là, je vois pas du tout comment faire. Je trouve plein de topics sur des forums où des gens ont le problème, mais aucun qui ne donne une solution.

A savoir que même dans le code source j'ai "?" à la place des caractères spéciaux. Donc ca a l'air d'être un problème avec la BDD, mais je ne vois pas quoi chercher d'autre.

J'ai essayé plein d'encodages pour mon champ, je reste sur de l'utf8_unicode_ci là vu que ça inclut un peu tout ce qui est possible.

Posté

Yeeeehaa !

Trouvé :)

Il faut ajouter en début de script :

mysql_query("SET CHARACTER SET 'utf8'");

Sinon on est en latin1 par défaut en PHP.

Apparement ça peut se regler aussi dans la conf PHP :

if you think "set names utf8" for each connection is too trouble, you can modify my.cnf of MySQL to solve the problem forever. In my.cnf, add the line "default-character-set=utf8" in both [mysqld] and [client] sections:

[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

The MySQL will use utf8 after you restart it.

Source : http://fr.php.net/mysql_client_encoding

Veuillez vous connecter pour commenter

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



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