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 :

Convertir Unicode en UTF-8


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut Convertir Unicode en UTF-8
    Bonjour,

    je cherche à convertir les caractères unicode d'une chaîne vers de l'utf8 sachant que la fonction chr de php ne me retourne pas le bon caractère.

    Pour illustrer mon exemple, je veux dans la chaine suivante remplacer la partie en rouge par sa valeur lisible é :

    Je n'ai pas code à poster dans la mesure où toutes les solutions que j'ai pu utiliser n'ont mené à rien.

    Merci d'avance

    WhaX!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    Je m'auto reply, histoir que ça puisse servir à quelqu'un.

    La solution est la suivante :

    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
    // Convertit de l'unicode en utf8
    function unicode2utf8($c)
    {
        if ($c < 0x80) {
            return chr($c);
        } else if ($c < 0x800) {
            return chr(0xc0 | ($c >> 6)) . chr(0x80 | ($c & 0x3f));
        } else if ($c < 0x10000) {
            return chr(0xe0 | ($c >> 12)) . chr(0x80 | (($c >> 6) & 0x3f)) . chr(0x80 | ($c & 0x3f));
        } else if ($c < 0x200000) {
            return chr(0xf0 | ($c >> 18)) . chr(0x80 | (($c >> 12) & 0x3f)) . chr(0x80 | (($c >> 6) & 0x3f)) . chr(0x80 | ($c & 0x3f));
        }
        return false;
    }
     
    // Convertit une chaîne unicode en utf8
    function toUtf8($str) {
        return utf8_decode(preg_replace('#\\\u([0-9A-F]{4})#ie', 'unicode2utf8(0x$1)', $str));
    }
    Au final ça marche bien pour le é, mais d'autres caractères genre Ö ne fonctionne pas !

    Si quelqu'un a une solution pour améliorer suis prenneur^^

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est de l'utf-16, avec json_decode ca le fait, puisque les données doivent venir de JavaScript

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_decode('"\u00e9cole"');

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 3
    Par défaut
    J'aurais dû y penser dans la mesure où elles proviennent d'un tableau json...(graph api de facebook).

    Bref, je te remercie voilà qui simplifie la chose!

    Je note le sujet comme résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertir un fichier à UTF-8
    Par helpcomm dans le forum Administration système
    Réponses: 1
    Dernier message: 02/11/2008, 08h19
  2. Correspondance Unicode et UTF-8
    Par kazh75 dans le forum Général Python
    Réponses: 4
    Dernier message: 16/07/2008, 19h22
  3. [.NET 2.0] Convertir une chaine utf-8 en Ascii
    Par abelman dans le forum Framework .NET
    Réponses: 2
    Dernier message: 30/04/2007, 21h47
  4. Convertir unicode en Ascii
    Par PrincePA dans le forum Framework .NET
    Réponses: 2
    Dernier message: 29/12/2006, 15h02
  5. Convertir unicode en ascii
    Par PrincePA dans le forum Windows
    Réponses: 3
    Dernier message: 28/12/2006, 14h59

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