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

JavaScript Discussion :

Conversion vers UTF8 hexa


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bractar
    Inscrit en
    Janvier 2004
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 224
    Par défaut Conversion vers UTF8 hexa
    Bonjour,
    je suis en train de faire une version polonaise d'un site et j'ai quelques caractères spéciaux.

    Le code javascript généré par le programme du mot "biała" (c'est une couleur et ca veut dire blanc pour info) est "bia\u0142a".
    Le problème est que je dois faire une comparaison JS entre "biała" et "bia\u0142a" pour savoir si c'est bien la même couleur. Pour cela il serait bien que je puisse convertir "biała" en "bia\u0142a".

    Je n'arrive pas a trouver un code JS sur le web afin de pouvoir faire ce genre de conversion.
    \u + code hexa du caractère spécial UTF-8 si je ne me trompe pas.
    Pouvez-vous m'aider?
    Merci

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    J'ai trouvé sur Internet cette petite fonction qui fait l'inverse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function translate(str) {
     
       function repeat(s, x) {
          for(var ii=0; ii<x-1; ii++) { s+=s; }
          return s;
       }
     
       return eval("\"" + str.replace(/&#x(\d{1,4});/g, 
                   function(a, b) { return "\\u"+repeat("0",4-b.length)+b ; }).replace(/"/g,"\\\"") + "\"");
    }
     
    alert(translate("bia\u0142a"));

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu as encore des progrès à faire avec google vermine

    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
    40
    41
    42
    43
    44
    45
    $somestring = "this is a test";
    for ($i = 0; $i <= length($somestring); $i++) {
        $arychrs[$i] = dec2hex(ord(substr($somestring, $i, 1)));
    }
    sub dec2hex {
        # parameter passed to
        # the subfunction
        my $decnum = $_[0];
        # the final hex number
        my $hexnum;
        my $tempval;
        while ($decnum != 0) {
        # get the remainder (modulus function)
        # by dividing by 16
        $tempval = $decnum % 16;
        # convert to the appropriate letter
        # if the value is greater than 9
        if ($tempval > 9) {
        $tempval = chr($tempval + 55);
        }
        # 'concatenate' the number to 
        # what we have so far in what will
        # be the final variable
        $hexnum = $tempval . $hexnum ;
        # new actually divide by 16, and 
        # keep the integer value of the 
        # answer
        $decnum = int($decnum / 16); 
        # if we cant divide by 16, this is the
        # last step
        if ($decnum < 16) {
        # convert to letters again..
        if ($decnum > 9) {
        $decnum = chr($decnum + 55);
        }
     
        # add this onto the final answer.. 
        # reset decnum variable to zero so loop
        # will exit
        $hexnum = $decnum . $hexnum; 
        $decnum = 0 
        }
        }
        return $hexnum;
        } # end sub
    ou encore
    http://farhadi.ir/downloads/hex.js
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre confirmé Avatar de bractar
    Inscrit en
    Janvier 2004
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 224
    Par défaut
    salut,
    merci de votre aide.
    Je vais essayer http://farhadi.ir/downloads/hex.js ton 1er code est en PHP, je ne peux faire ca qu'en JS

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/08/2010, 11h55
  2. absence de conversion de locale vers utf8 dans un code
    Par minibus dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 12/08/2009, 11h32
  3. Conversion d'une base utf16 vers UTF8
    Par studenttours dans le forum Requêtes
    Réponses: 0
    Dernier message: 22/04/2008, 11h07
  4. conversion vers l'hexa et résultat bizarre
    Par sanatou dans le forum C
    Réponses: 16
    Dernier message: 04/01/2007, 08h39
  5. Conversion String en Hexa ("1F") vers byte
    Par ducseb dans le forum Langage
    Réponses: 1
    Dernier message: 15/04/2006, 20h03

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