de l'unicode vers l'iso ISO-8859-1[résolu] - PHP - Programmation
Marsh Posté le 02-09-2004 à 22:14:03
Que veux tu dire par inexploitable?
A+,
Marsh Posté le 02-09-2004 à 22:16:56
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 !
Marsh Posté le 02-09-2004 à 22:27:27
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+,
Marsh Posté le 02-09-2004 à 22:46:30
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...
Marsh Posté le 02-09-2004 à 22:56:59
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
Marsh Posté le 03-09-2004 à 06:20:27
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..
Marsh Posté le 03-09-2004 à 10:58:13
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 :
|
Marsh Posté le 03-09-2004 à 18:40:48
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
Marsh Posté le 03-09-2004 à 21:30:12
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 :
|
et ça marche sur des roulettes ^^
merci à tous de m'avoir aidé
Marsh Posté le 02-09-2004 à 22:07:58
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