Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/06/2007, 13h27   #1
Invité de passage
 
Inscription : avril 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 13
Points : 3
Points : 3
Par défaut Affichage de l'arabe avec PHP

Bonjour
mon code source php les cracteres arabe;et voilà le message qui etait aficher:

***Le document n'a pas pu être enregistré, car l'encodage sélectionné ne peut encoder tous les caractères unicode du document. Si vous n'êtes pas sûr de l'encodage à utiliser, essayez UTF-8 ou UTF-16.***

remarque: je travail sous debian
chikha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 14h30   #2
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Bonjour,
Peux-tu mieux expliquer le problème?
C'est dans ton éditeur de texte que le problème se pose? Si oui, il doit y avoir une option quelque part concernant l'encodage des caractère, et comme le dit le message il faut passer en utf8.
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2007, 16h12   #3
Invité de passage
 
Inscription : avril 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 13
Points : 3
Points : 3
Par défaut explication

oui,si j'ai ajouter des caracteres arabes et si j'ai fais la sauvgarde il me demande de travail avec le codage utf-8 la chose que je connu pas
donc pouvez vous m'aider?
chikha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 12h28   #4
Membre du Club
 
Avatar de fadex
 
Inscription : septembre 2005
Messages : 224
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : septembre 2005
Messages : 224
Points : 68
Points : 68
salut chikha labas


ajouter ca ca va marcher :
Code :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-6" />
Exemple:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-6" />
<title>Untitled Document</title>
</head>
 
<body>
<?php
 
$var="&#1581;&#1576; &#1575;&#1604;&#1582;&#1610;&#1585; "; // (hob alkhayr) un texte en arab qui ne saffiche pas ici question d'encodage.
 
echo $var;
?>
 
</body>
</html>
fadex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 03h18   #5
Membre régulier
 
Avatar de The Nux
 
Inscription : février 2006
Messages : 79
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : février 2006
Messages : 79
Points : 84
Points : 84
Envoyer un message via MSN à The Nux
Pour faire vite, dans un fichier texte (un code source PHP est un fichier texte), l'éditeur nous montre des lettres mais il stocke des nombres sur le disque dur (souvenez vous, le disque dur est une suite de 0 et de 1, c'est donc des nombres en binaire et pas des lettres). Il lui faut donc une table de correspondance entre les lettres et les nombres. Le format utilisé pour les nombres (l'octet) permet d'avoir 256 lettres distinctes, ce qui est trop peu pour couvrir tout les alphabets de la terre. Par conséquent, il existe plusieurs tables de correspondances, appellées charsets (ou "character set", ou encore "jeu de caractère"). Il en existe pour tout les alphabets en fait. Il est donc impossible d'avoir plusieurs alphabets dans le même document, et de plus il faut spécifier le charset utilisé dans chaque document. Je dis que c'est impossible, mais ce n'est plus vrai. C'était impossible jusqu'à l'apparition d'unicode (et de UTF-8) qui utilise un format différent pour le stockage des caractères. De ce fait, tout les alphabets peuvent être exprimé avec le même charset car il offre des milliers de possibilités de caractères.

Dans ton cas particulier, tu utilises probablement gedit, qui permet d'enregistrer dans la plupart des charsets connu, dont l'utf-8 (ou l'iso-8859-6 qui est le charset arabe, mais je te conseille plutôt d'utiliser l'utf-8, c'est un charset d'avenir). Cherches dans les options quand tu fais "enregistrer sous", c'est quelquepart.

Si tu encodes ta page en utf-8 (ou un autre charset, quel qu'il soit d'ailleurs), il faut que tu le dises au navigateur, comme l'a expliqué fadex. Pour une page en utf-8 :

Code :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Comme tu programmes en PHP, il y a de fortes chances que tu utilises mysql. Il faut que tu choisisse un collation qui correspond quand tu créés tes tables. La collation c'est des règles que mysql applique quand tu va faire des recherches, par exemple si tu cherches "vélo" et qu'il trouve "velo", il va savoir que "é" et "e" c'est presque pareil, donc il va dire que vélo == velo. Bref, ça aide pour les recherches (c'est un exemple).
De plus, il ne faut pas oublier de dire à mysql que tu utilises utf-8. Dès que tu es connecté, tu dois executer la requête
Code :
mysql_query("SET NAMES utf8");
Et euh voila je crois que j'ai fait le tour...

C'est un peu hors sujet, mais sur phpclasses il y a un developpeur qui cherche à implémenter la langue arabe en PHP, et il a déjà fait des classes intéressantes. Voici sa page http://www.phpclasses.org/browse/author/189864.html
The Nux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2007, 13h24   #6
Invité de passage
 
Inscription : avril 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 13
Points : 3
Points : 3
Par défaut pourquoi?

merci pour tous qui m'aidais;mais si j'ajoute la ligne:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
pourquoi j'ecris avec les lettres arabes avec des codes;je veux ecrire des lettres en arabes directement car si je doit ecrire une page par exemple en arabes donc je suis obligé de connaitre tous les code des lettres arabes !c'est defficile non?!
et merci d'abord
chikha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 12h21   #7
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Avec UTF-8 tu peux écrire directement en arabe
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2007, 11h43   #8
Invité de passage
 
Inscription : avril 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 13
Points : 3
Points : 3
Par défaut ça marche pas

oerci pour l'aide
oui Mr blueice j'ai utilise utf-8 dans l'entete mais ça marche pas
chikha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 22h50   #9
Membre régulier
 
Avatar de The Nux
 
Inscription : février 2006
Messages : 79
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : février 2006
Messages : 79
Points : 84
Points : 84
Envoyer un message via MSN à The Nux
Il faut aussi que tu utilises un éditeur de texte qui supporte l'utf-8. Gedit fait ça très bien, il suffit que tu configures ça à l'enregistrement du fichier
__________________
Nouveau bachelier et futur ingénieur
Et j'ai même un blog !
The Nux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 15h06   #10
Invité de passage
 
Inscription : avril 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 13
Points : 3
Points : 3
Par défaut pour les BDD

merci pour les reponces et les aides
le problem de l'arabe et reglé pour les page php
mais j'ai un autre problem pour l'enregitrement en arabes dans mon BDD;si j'insert dans la bdd il prond les lettres arabes comme des ??????? je ne sais pour quoi car l'arabe elle bien configurée dans mon Debian
chikha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 15h12   #11
Membre régulier
 
Avatar de The Nux
 
Inscription : février 2006
Messages : 79
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : février 2006
Messages : 79
Points : 84
Points : 84
Envoyer un message via MSN à The Nux
Il te faut aussi configurer ta base de données. Créé tes tables en utf-8, et ensuite juste après que tu te sois connect à mysql il faut que tu fasses la requête
Code :
mysql_query("SET NAMES utf8")
pour dire à mysql que tu lui parles en utf8
__________________
Nouveau bachelier et futur ingénieur
Et j'ai même un blog !
The Nux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h39.


 
 
 
 
Partenaires

Hébergement Web