Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
987 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  de l'unicode vers l'iso ISO-8859-1[résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

de l'unicode vers l'iso ISO-8859-1[résolu]

n°840475
dpro
Gentil Opticien
Posté le 02-09-2004 à 22:07:58  profilanswer
 

Bonsoir,
voila plusieurs semaine que je m'arrache les cheveux sur ce problème sans entrevoir de solutions...
j'ai un fichier texte, qui contient une sauvegarde de sms nokia (donc une répétition de données selon une syntaxe donnée). Ce fichier semble etre etre codé selon le charset unicode...
Après avoir découpé les parties m'interessant grâce à php, je les affiche dans un explorateur (normal !)
Tout semble à premiere vue lisible
 
Ex :  
Message 7
Type : PIT_MESSAGE_INBOX
Message : Ta pa tor
Expediteur : +33664300000
Date : 2004-08-10
Heure : 00:36
 
Mais si on regarde dans la source voila ce qu'on peut lire :
<b>Message 7</b><br>Type : P I T _ M E S S A G E _ I N B O X <br>
Message : T a p a t o r <br>
Expediteur : + 3 3 6 6 4 3 0 0 0 0 0 <br>
Date : 2 0 0 4 - 0 8 - 1 0 <br>
Heure : 0 0 : 3 6 <br><br>
 
Les espaces(ou autres caracteres vides, je ne sais pas trop) rendent l'utilisation des variables (pour mettre dans une base de données par exemple) totalement inexploitables...
 
J'ai essayé les fonctions fournies avec php (utf8_decode...) mais aucune n'est efficace, il y a bien la libraire recode, mais je travaille exclusivement sous windows !
C'est vrai que mon probleme semble un peu complexe, si vous voulez de plus amples détails, contactez moi par mail, ou sur msn avec la meme adresse...
 
merci d'avance


Message édité par dpro le 03-09-2004 à 21:30:41
mood
Publicité
Posté le 02-09-2004 à 22:07:58  profilanswer
 

n°840480
gilou
Modérateur
Modzilla
Posté le 02-09-2004 à 22:14:03  profilanswer
 

Que veux tu dire par inexploitable?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°840483
dpro
Gentil Opticien
Posté le 02-09-2004 à 22:16:56  profilanswer
 

par exemple, si je veux mettre la date en timestamp unix, c'est impossible....
en fait, si je connaissais le caractère qui se trouve entre les autres je pourrais le virer avec strtr... mais la c étrange, pcke c'est comme si c'était un espace sans en etre un !

n°840486
gilou
Modérateur
Modzilla
Posté le 02-09-2004 à 22:27:27  profilanswer
 

parce que ca n'est pas un caractere de padding, mais quelque chose de variable, et que le codage utilise 16 bits (rarement deux fois 16)
C'est a toi de choisir: soit tu stoque tout en unicode dans ta base (et tu convertis les données non unicode en unicode), soit tu convertis tout de Unicode vers qque chose qui te convienne.
A vue de nez, l'unicode que tu as a l'air d'utiliser le codage UTF16. Ca doit pas etre tres complique de trouver un codage UTF16 -> Isolatin 1 qui vire ce qui n'est pas Isolatin1 dans les données de depart.  
A+,


Message édité par gilou le 02-09-2004 à 22:32:14

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°840498
dpro
Gentil Opticien
Posté le 02-09-2004 à 22:46:30  profilanswer
 

rah ouai, j'ai essayé pas mal de trucs mais sans succès, si tu as un peu de temps, et que ça ne te dérange pas de jetter un coup d'oeil ça m'aiderai beaucoup...

n°840508
pascal_
Posté le 02-09-2004 à 22:56:59  profilanswer
 

Apparement, en php il faut utiliser les fonctions mb_* :
http://www.nexen.net/docs/php/annotee/ref.mbstring.php
 
Mais le module n'est pas activé par défaut si j'ai bien compris...
 
edit : notamment : http://www.nexen.net/docs/php/anno [...] iables.php


Message édité par pascal_ le 02-09-2004 à 22:58:07
n°840708
dpro
Gentil Opticien
Posté le 03-09-2004 à 06:20:27  profilanswer
 

j'ai jeté un rapide coup d'oeil ce matin aux fonctions mb_; ça me parait plutot compliqué, comment puis-je exploiter les chaines ascii ???
Bon, vu que je rentre en cours dans qq heures je n'ai pas le temps d'approfondir mes recherches mais ce soir ^^...
si qqn a un exemple concret de code avec les fctions mb_, ça serait bienvenue.. :)

n°840862
pascal_
Posté le 03-09-2004 à 10:58:13  profilanswer
 

Lis la doc. Il y a un exemple en bas de page sur :
 http://www.nexen.net/docs/php/anno [...] iables.php
 
Tu devrais faire qqchose comme :
 

Code :
  1. $interenc = mb_internal_encoding( 'ASCII' ); // ou bien ISO-8859-1
  2. $inputenc = mb_convert_variables($interenc, "UTF-16", $taVariable);
  3. echo $taVariable


n°841377
dpro
Gentil Opticien
Posté le 03-09-2004 à 18:40:48  profilanswer
 

merci, mais c'était trop beau pour marcher....
j'ai lu et relu la doc, mais ça ne marche tjs pas !!!
il me sort un warning :  
Warning: mb_convert_variables(): Unknown encoding "1"
j'ai tourné le pb ds tt les sens sans que rien n'y change..
je commence à désésperer :(

n°841579
dpro
Gentil Opticien
Posté le 03-09-2004 à 21:30:12  profilanswer
 

voilà, grâce à ric sur le forum de nexen, j'ai trouvé la solution; il fallait tout simplement que je supprime le caractère ascii 0 de chaque variable

Code :
  1. $trans = array(chr(0)=>"" );
  2. $type = strtr($type, $trans);


et ça marche sur des roulettes ^^
merci à tous de m'avoir aidé  :bounce:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  de l'unicode vers l'iso ISO-8859-1[résolu]

 

Sujets relatifs
Ajouter un jour à une date [resolu][PHP/MySQL] Select par date [Résolu]
page de renvoi vers index.html ?[CSS] incompatibilité avec ie/mozilla [résolu]
[Résolu] Schéma BDD / EJBs sous eclipseflash s'affiche pas sous firefox [Résolu]
[Résolu] Tomcat et Custom TagSuppression Recursive et RDMIR, FOR et DIR [RESOLU]
migration paradox vers mysqlMigration Oracle-SQL vers BD2-SQL
Plus de sujets relatifs à : de l'unicode vers l'iso ISO-8859-1[résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR