IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Passer du iso-8859-1 au utf-8


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut Passer du iso-8859-1 au utf-8
    Bonjour ,
    Actuellement je travail sur un site en php encodé avec iso-8859-1, après on a constaté que notre site ne traite pas bien les caractère arabes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />


    Et maintenant je dois passer du latin vers Unicode
    Mais quand j'essaye de faire, il y a des caractère sur le site qui devient sous forme des caractère non reconue : ??dition Nord ...

    Aussi l'encodage par défaut dans notpad++ ou les pages ont été développé c'est en latin et quand je le change en UTF-8 il y a certain caractère qui s'affiche pas correctement.

    Nous générons aussi des fichier txt sur le serveur et quant-il s'agit de l'arabe le fichier n'affiche pas les caractères proprement, sachant qu'il prend en compte les scriptes complexe et les langues s'écrivant de droite à gauche.

    Je me demande si je change de iso-8859-1 vers UTF-8 est-ce je serais contraint a réécrire toute les lettre qui ne s'affichent pas correctement ? Ou bien je vais perdre la lisibilité des caractères ?
    Pour les fichiers générées aussi quelqu'un à une idée ?
    Cordialement

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    quand je le change en UTF-8 il y a certain caractère qui s'affiche pas correctement.
    Dans notepad++ ou dans ton navigateur ?

    Pour les fichiers générés c'est la même chose : si ton fichier PHP et ta page HTML ont un encodage UTF8, le fichier généré sera en UTF8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Dans notepad++ ou dans ton navigateur ?
    Dans les deux.

    Citation Envoyé par sabotage Voir le message
    Pour les fichiers générés c'est la même chose : si ton fichier PHP et ta page HTML ont un encodage UTF8, le fichier généré sera en UTF8.
    C'est pour cela que je cherche une méthode pour passer du latin vers l'Unicode sans perdre l'affichage.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux nous joindre un fichier qui ne se converti pas bien avec notepad ++ ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu peux nous joindre un fichier qui ne se converti pas bien avec notepad ++ ?
    Voila :
    tools.inc.php
    Merci

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu pourrais préciser ou tu vois trouves le problème ? Je prends ce fichier, je l'ouvre dans notepad++ je le convertis en UTF-8, je ne vois pas de caractères mal convertis.

    Par contre, en dehors du fichier lui même, il faudrait s'assurer que les fonctions utilisés par ton script, vu qu'apparemment il fait des actions sur les chaines de caractères, n'utilise pas des fonctions qui ne gère pas l'unicode (strtoupper() par exemple)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu pourrais préciser ou tu vois trouves le problème ? Je prends ce fichier, je l'ouvre dans notepad++ je le convertis en UTF-8, je ne vois pas de caractères mal convertis.
    (strtoupper() par exemple)
    Au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     $aHtmlSpecialChars = Array(
    		'&OElig' => 'Œ',
    		'&oelig' => 'œ',
    		//charactères qui sont mal interpretés par l'extension xtg de Quark
    		'&circ' => 'ˆ',
    		'&tilde' => '˜',
    		'&ensp' => ' ',
    		'&emsp' => ' ',
    		'&thinsp' => ' ',
    		'&zwnj' => '',
    		'&zwj' => '',
    		'&lrm' => '',
    		'&rlm' => '',
    		'&ndash' => '–',
    		'&mdash' => '—',
    		'&minus' => '—',		
    		'&lsquo' => '‘',
    		'&rsquo' => '’',
    		'&sbquo' => '‚',
    		'&ldquo' => '“',
    		'&rdquo' => '”',
    		'&bdquo' => '„',
    		'&dagger' => '†',
    		'&Dagger' => '‡',
    		'&hellip' => '…',
    		'&permil' => '‰',
    		'&lt' => '‹',
    		'&gt' => '›',
    		'&lsaquo' => '‹',
    		'&rsaquo' => '›',
    		'&bull'=> '•',
    		'&#149' => '•',
    		//Pour AJL seulement
    		'&euro' => '€', //<@EuroSans-Regular>e<@$p>'
    		'&quot' => '"',
    		'&para' => '',
    		'&pound' => '£',
     
    	);
    Aussi toutes les lettres accentuées ..

    Citation Envoyé par sabotage Voir le message
    Par contre, en dehors du fichier lui même, il faudrait s'assurer que les fonctions utilisés par ton script, vu qu'apparemment il fait des actions sur les chaines de caractères, n'utilise pas des fonctions qui ne gère pas l'unicode
    J'ai essayé de convertir touts les fichiers que j'ai en UTF-8 avec notepad++ tout marche bien et je change aussi les meta en UTF-8
    Mais quand je visualise le site les caractères accentuées sont mal affichés
    Mon application tourne sous Win server 2003 et serveur IIS 6

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    A quoi ressemble ton fichier une fois converti avec notepad++ ?

    Pour le reste, je te dis que si ton script utilise des fonctions qui ne gèrent pas UNICODE, ca ne marchera pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par sabotage Voir le message
    A quoi ressemble ton fichier une fois converti avec notepad++ ?.
    Les lettres accentuées et les tirées sont remplacé par des ?

    Citation Envoyé par sabotage Voir le message
    Pour le reste, je te dis que si ton script utilise des fonctions qui ne gèrent pas UNICODE, ca ne marchera pas.
    Je dois alors convertir mon application du Latin vers Unicode ?
    y-a-t'il pas un moyen de forcer le fichier créer d'être encoder en UTF-8 lors de sa création, sachant que quand j'ouvre le fichier créer et je converti en UTF-8 j'arrive à voir les caractères arabes
    Merci

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Change ta version de notepad++ ou revoit ta facon de faire la conversion car chez moi la conversion fonctionne.

    Pour les fonctions, il faut les remplacer par des versions Unicode : par exemple strtoupper devient mb_strtoupper.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par sabotage
    Change ta version de notepad++
    J'aurais plutôt tendance à dire "utilise la bonne commande", à savoir "Encodage > Convertir en..." au lieu de "Encodage > Encoder en..."
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Bovino Voir le message
    J'aurais plutôt tendance à dire "utilise la bonne commande", à savoir "Encodage > Convertir en..." au lieu de "Encodage > Encoder en..."
    Bonjour
    ça marche votre solution

    Citation Envoyé par sabotage Voir le message
    Pour les fonctions, il faut les remplacer par des versions Unicode : par exemple strtoupper devient mb_strtoupper.
    Maintenant que j'ai fais la conversion je veux que mon site soit en unicode j'affiche les pages mais les caractères accentués sont mal interprété depuis mes recherches sur internet j'ai pu conclure que le navigateur est réglé pour lire de l’utf8 mais tente de lire du texte qui est encodé en iso-8859-1.
    Ceci dit que j'ai pas fais toute les conversions des meta de mon site ( de iso-8859-1 vers utf-8) ?
    J'ai aussi réglé le serveur web IIS6 à envoyer des réponse en utf-8
    Est-ce je suis dans la bonne voie ? ou bien je dois faire d'autres manipulation ?
    Merci à vous

Discussions similaires

  1. Conversion ISO-8859-1 vers UTF-8 dans Eclipse
    Par Jerhom dans le forum Eclipse
    Réponses: 2
    Dernier message: 03/06/2008, 17h35
  2. [XML] de ISO-8859-1 à UTF-8
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/08/2007, 11h32
  3. ISO-8859-1 et UTF-8
    Par NizarK dans le forum Documents
    Réponses: 4
    Dernier message: 22/03/2007, 09h16
  4. Réponses: 1
    Dernier message: 05/12/2006, 16h54
  5. conversion iso-8859-1 vers utf-8
    Par gorgonite dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/08/2006, 12h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo