PHP, SQL Server et la langue arabe

PHP, SQL Server et la langue arabe - PHP - Programmation

Marsh Posté le 14-02-2008 à 11:14:16    

salut tout le monde
 
je suis débutant dans la programmation php, et j'ai une application à faire qui accède a une base SQL Server 2000 pour afficher des données en arabe. Le problème est que l'affichage est comme sui :"íªŸ©¡ Ÿé¢© ï¡ í Ÿé¢èíïë" j'ai bon essayé tous les encodages au nivreau de la page elle même (utf-8,windows-1256...) mais sa change rien, sachant que les données et en niveau de SQL manager s'affiche correctement.
j'ai eu ce problème avant avec des bases mysql et postgres sous linux mais alors il suffisait d'avoir la bonne combinaison encodage base/page pour le bon affichage.  
 
merci pour votre aide


---------------
Core2duo E6420 4 Go DDR3 Saphire HD5770 1 Go dual screen : siemens 17p + siemens 19p
Reply

Marsh Posté le 14-02-2008 à 11:14:16   

Reply

Marsh Posté le 14-02-2008 à 13:25:49    

Le navigateur web peut connaitre l'encodage d'une page de 2 manières différente. Soit par les entêtes http, soit par une balise html  
(<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> )
 
Si les deux informations existent le navigateur prend en priorité ce qu'il trouve dans l'entête http.
Pour modifier l'entête http soit configurer ton serveur web (pour qu'il envoie la bonne, ou qu'il n'en envoie pas, soit avec php).
 
Si tu utilises firefox tu peux connaitre et modifier l'encode que ton navigateur utilise : Affichage > encodage des caractères >
 
Pour forum.hardware.fr firefox indique utf-8 (ce qui correspond à la balise meta, et egalement à l'entete http : Content-Type: text/html; charset=utf-8)
 
en esperant que ca va t'aider.
 
 
--
formation à apache et php http://formation.1g6.biz/

Reply

Marsh Posté le 14-02-2008 à 15:53:08    

merci pierre d'avoir répondu
j'ai bon mis l'encodage dans la balise html mais sa change rien, et même si je change l'encodage par firefox sa change rien, pire les donnée statiques (pas obtenu a partir de la base) ne sont plus affiché correctement. au fait ce que j'écris en arabe dans le code s'affiche normalement c'est juste les données de la base qui sont mal foutu!
 
avant avec mysql et postgres il suffisait que je crée une nouvelle base en utf-8 par exemple et que je remet dedans les données et avec le bon encodage en niveau de html tout s'affiche correctement mais avec SQL Server j'arrive pas a le faire. enfin a choisir utf-8
je sais il devrait surement avoir une solus, genre forcé l'affichage des données avec un tel ou tel encodage au niveau de php ou un truc comme ça  :??:  


---------------
Core2duo E6420 4 Go DDR3 Saphire HD5770 1 Go dual screen : siemens 17p + siemens 19p
Reply

Marsh Posté le 14-02-2008 à 18:11:58    

tu peux essayer la fonction encode : http://fr2.php.net/manual/fr/function.utf8-encode.php
 
mais je n'ai aucun retour sur expérience sur l'utilisation de cette fonction


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 15-02-2008 à 10:47:16    

bonjour, et merci encore,  
je viens juste d'essayer ut8_encode mais sa donne rien :(


---------------
Core2duo E6420 4 Go DDR3 Saphire HD5770 1 Go dual screen : siemens 17p + siemens 19p
Reply

Marsh Posté le 15-02-2008 à 11:15:45    

pas d'autre idée de mon coté, je laisse la main aux autres ...


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 15-02-2008 à 23:16:06    

ah utf8_encode et utf8_decode :)
 
elles m'ont fait voir de toutes les couleurs mais ça a le mérite d'etre efficace :) le truc c'est que par fois il faut tenter toutes les combinaisons avec, si encode marche pas essaye decode, si marche pas non plus essaye encode(encode()) ou decode(decode()).
 
 
j'ai deja eu a utilser ut8_decode(utf8_decode($texte)) pour avoir le bon affichage.
 
mais le mieux serait quand meme d'avoir une vrai fonction genre toUTF8() faite maison qui utilise locale et mb_string, au moins t'es sur d'avoir de l'utf8 a tous les coup et surtout du premier coup :)
 

Reply

Marsh Posté le 11-04-2013 à 16:20:42    

Assalamu 3alaykum,
 
Afficher correctement des données arabes extraites d'une table MySql :
 
PREMIERE PARTIE :
 
Police de caractère à choisir pour afficher les caractères arabes dans une table :
 
1. Créer une Table.
 
2. Dans le champ Interclassement, sélectionner "utf8_bin" comme langue d'affichage.
 
3. Enregistrer en cliquant sur Sauvegarder.  
 
 
DEUXIEME PARTIE :
 
1. Ouvrir la page de résultats et repérer la ligne suivante :
mysql_select_db($database_fr_dictionary_ar_fr, $fr_dictionary_ar_fr);
 
2. Copier les deux lignes suivantes immédiatement en dessous :
mysql_query("SET NAMES cp1256" );
mysql_query("set characer set cp1256" );
 
3. Modifier la ligne de charset pour "windows-1256" comme cela :
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
 
4. Enregistrer.
 
Source : Sumarabus.com (pleins de Tutoriaux sur la langue arabe et Dreamweaver 8).
 
Ma3a assalama,
 
Mister Arabic.

Reply

Marsh Posté le 11-04-2013 à 23:28:38    

UTF8 est un jeu de caractères international, je l'utilise pour traiter de l'arabe, du russe, du grec, ...etc.
 
Déjà vérifie que l'encodage de tes fichiers est en utf8.
créé ta base et tes tables en utf8
A chaque fois que tu te connectes à ta base, effectue une requete SET NAMES utf8 (attention, pas a chaque requête, seulement à la connexion, ce doit etre ta première requête) ou l'équivalent sur SQL serveur
et enfin, indique au navigateur que ton ton contenu est en utf8 via une balise meta ou un header()
 
Si cela ne marche pas, tu peux aussi changer l'encodage interne de php en utf8 et utiliser des utf8encode/décode (mais en principe pas besoin)


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 12-04-2013 à 08:06:49    

Ca va, 4 topics déterrés...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed