begin process at 2012 05 31 04:15:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

php et l'arabe(urgent)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

php et l'arabe(urgent)

vendredi 8 juin 2007 à 13:37:06 | php et l'arabe(urgent)

jack_bauer42r

salut,
je suis en train de concevoir une application en php/mysql en langue arabe. la table mysql utilise l'encodage utf8_unicode_ci et l'affichage dans phpmyadmin est correct mais si  j'étais d'afficher les  données de  la table avec un script j'obtiens Ù.اد٦ة. j'ai essayé de modifier l'encodage  de la page en utf8 ou en windows-1256 mais ça ne marche toujours pas.
vendredi 8 juin 2007 à 14:03:54 | Re : php et l'arabe(urgent)

J_G

Salut,


As-tu vérifié que la connexion  MySQL utilise l'encodage UTF-8 ? Car sinon, tu perds l'encodage sur le trajet des données entre MySQL et PHP...

Pour le savoir :
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);
echo
"The current character set is: $charset\n";

Pour le faire :
mysql_query("SET CHARACTER SET 'utf8'", $link);


Note, avec mysqli :
$charset = $mysqli->character_set_name();
Et :
if (!$mysqli->set_charset("utf8")) {
   
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
   
printf("Current character set: %s\n", $mysqli->character_set_name());
}


Si le pb n'est pas là... A+
A+
vendredi 8 juin 2007 à 18:51:35 | Re : php et l'arabe(urgent)

jack_bauer42r

j'ai essayé avec la fonction que voous m'avez donné et le message est The current character set is: latin1.ma base de donnée ainsi que les tables utilisent utf8_unicode_ci mais en vain. les pages qui se chargent d'afficher les résultats de mes requêtes  sont réglés sur utf8 aussi.
merci de votre aide
vendredi 8 juin 2007 à 19:22:58 | Re : php et l'arabe(urgent)

J_G

L'erreur est donc (peut-être) ici : The current character set is: latin1


Il ne faut pas confondre stockage des données, traitement des données et affichage des données...

Vos données ont beau être stocké au format utf8, elles sont traitées comme du latin1... Il faut que la CONNEXION à la base de donées soit dans le bon jeu de caractères, c'est à dire utf8.

La commande SQL pour changer ça est : mysql_query("SET CHARACTER SET 'utf8'", $link);
ou avec mysqli :$mysqli->set_charset("utf8")

Bien sûr, il faut le faire AVANT de récupérer les données de la base (via un select).
dimanche 10 juin 2007 à 11:18:38 | Re : php et l'arabe(urgent)

jack_bauer42r

bon, j'ai obtenu un sursis donc j'ai décidé de réecrire tout le code depuis le début, ce qu'il me faut savoir ce sont les paramètres d'encodage de la base de données et des pages du site. est ce que je dois créer une base de données dont l'encodage est utf8, les pages doivent-ils être en utf8? merci.
dimanche 10 juin 2007 à 13:05:22 | Re : php et l'arabe(urgent)

J_G

Salut,


Réercrire tout le code !!! C'est peut-être excessif... Enfin bon, donc le meilleur conseil que je puisse te donner : TOUT EN UTF8 UNICODE

Surtout si tu utilises une langue dont l'alphabet n'est pas, mais pas du tout, latin... Come l'arabe.

utf-8 est un jeu de caractère qui essaye de rassembler tout les alphabets. C'est une normalisation... c'est international... Donc il faut l'utiliser. Tu pourrais même utiliser utf-16.

Bref, il te suffit de
  • changer la déclaration du jeu de caractère par défaut de ta base de données
  • changer les jeu de caractère par défaut des tables
  • et surtout, changer les jeu de caractère des champs textes des tables.
  • Créer une petite class d'abstraction de la base de donnée... qque chose de très simple comme ça :
class db {
    private $link;

    function __construct() {
        $this->link = mysql_connect(...);
       mysql_select_db('dbname',$this->link);
        $this->query("set character set 'utf8'");
    }

    function query($sql) {
        return mysql_query($sql,$this->link);
    }
}

// Exemple d'utilisation :
$db = new db;
$mysql_res = $db->query("select champs from table where cond");
// et traitement de $mysql_res comme tu sais faire.
  • Bien penser à spécifier le jeu de caractère des pages générée
    • via les entête HTTP : header('Content-type: text/html; charset: utf-8');
    • ou un balise META dans la page : <meta http-equiv="Content-type" content="text/html; charset utf-8" />
  • Et en cas de problème : les fonction utf8_encode() / utf8_decode() devraient te sauver.
A+
dimanche 10 juin 2007 à 13:31:48 | Re : php et l'arabe(urgent)

jack_bauer42r

j'apprécie vraiemnt votre aide. vraiment merci.
pour la création je dois donc déclarer mes tables avec l'option "DEFAULT CHARSET = utf8" et est ce que je peux utiliser les fonctions mysql_query() .... à la place des fonctions que vous avez cité car je n'ai pas une grande sur la poo en php.
bon pour réecrire tout le code, ce n'est pas tout à fait le mot.
dimanche 10 juin 2007 à 14:04:34 | Re : php et l'arabe(urgent)

J_G

oui, aucun problème pour utiliser mysql_query...

Simplement il ne faut pas oublier de définir une connexion à la base de donner en utf-8. Ca peut-être configuré par défaut qque part dans le fichier de configuration de mysql (my.conf)... mais je doute que tu ai accès à ce fichier.

Donc, il faut bien faire la requête "set character set 'utf8'" après la connexion à la base.

OK ?
mardi 19 juin 2007 à 22:54:06 | Re : php et l'arabe(urgent)

jack_bauer42r

j'ai tout essayé mais je n'arrive pas à résoudre le problème. c'est toujours ce The current character set is: latin1. ce qui ne résout pas mon problème. si vous avez une autre idée n'hésitez pas à me la filer. merci.
mardi 19 juin 2007 à 23:38:25 | Re : php et l'arabe(urgent)

J_G

non, aucune idée de plus, désolé...


Cette discussion est classée dans : table, php, urgent, mysql, arabe


Répondre à ce message

Sujets en rapport avec ce message

PB update table mysql ! [ par lolo ] Comment pourrai-je faire pour mettre à jour une table mysql par le biais d'un formulaire (parcourir ...*.cvs) et d'un fichier php d'update de table my Récupération du contenu d'une table Mysql en PHP [ par BSide ] Bonjour,dans ma table TABLE se trouvent 3 champs C1, C2 et C3 que je renseigne par un formulaire + INSERT INTO etc.Actuellement se trouvent dans TABLE mysql et php [ par nico606 ] Salut g un probleme je debute en php et je viens de charger un espace membre pour mon site il est evidemment en php et Mysql y a une page d'installati Pas de surbrillance en php ? [ par nougitch ] Bonjour, Impossible de faire un "onmouseover" et un onmouseout" dans mon code php. Ca marche très bien en HTML... Voir la balise en gras. Merci d'a update une table mysql via php [ par kaddouremna28 ] salut à tous, j'ai un problème de mise a jour d'une table mysql via php et voici le code :UPDATE table SET num='$num', nom='$nom' WHERE code='$code'j' probleme d' Affichier table mysql [ par khaledinfor ] pour affichier d'un table mysql en php utilise deux page web : affichier.php et affichier_lien.php creation d'un table  table1 sur la base  blog.creat [PHP/MYSQL]Scripte d'ajout de points par allopass [ par healiha ] Bonjour tous le monde il se trouve que je tien un site et que j'aimerais que les utilisateurs gagnent 10 points quand l'allopass entré est bon de mani php mysql html [ par hela31 ] je travaille sur un site web dans mes etude gestion d une residence j ai table client table tarifs table disponibilite dans une page j ai un tableau q php/sql join query [ par theunknown0o ] Bonjour tout le monde,j'essaie d'executer une requete 'join' sql dans un fichier php, mais a chaque fois j'ai une erreur,au niveau de la connexion au session php [ par gign55 ] Bonjour, je me suis mis à utiliser WAMP pour créer un site internet. j'ai suivi quelques conseils sur d'autres sites pour créer un système de session


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales