alors attention ce message va etre compliqué !!!
j'ai un formulaire en UTF8
une personne met dedans un texte via un copier coller depuis word contenant
le carcatère
' (code ascii 0x92)
et
? (code ascii 0x80)
evidement comme le coller est de l'utf-8 dans le formulaire c'est deja plus
les meme caractère...
donc a present l'idée c'est d'arriver a envoyer ca a quelqu'un qui n'a pas
windows
premier idée:
utf8-decode : alors la pas de probleme, ca marche pas car les deux
caractères ne sont pas reconnus par cette fonction
deuxième idée:
iconv("utf-8", "windows-1252", $text) : alors la c'est bien, on arrive a
retrouver notre chaine originale... mais bon elle est en windows-1252 et
donc incompréhensible pour un non windows
troisieme idée:
iconv("utf-8", "iso-8859-1", $text) : le caractère ? n'est pas reconnu...
quatrieme idée:
iconv("utf-8", "iso-8859-15", $text) : alors la le ? est bien converti, mais
les caractère windows (genre le 0x92) interrompe tout simplement le
traitement de la chaine de caractère... il manque donc la fin...
bref...
je me dis alors...
le vais convertir en "windows-1252" puis remplacer tous les caractères
windows (ceux compris entre 0x81 et 0x9f) par des equivalents plus ou moins
proche dans le charset iso-8859-15...
et la j'arrive a quelques chose d'acceptable, mais comment est ce que je
fais pour remplacer mon 0x80 par un ? dans le charset iso-8859-15 ?
voila donc help...
merci
Etienne
PS : je suis aussi preneur de toute solution capable de convertir un text
UTF-8 provenant de windows en iso-8859-15 meme si quelques caractères se
sont vus un poils modifiés...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Etienne SOBOLE
Comme tout n'est pas franchement lisible dans mon mail 0x92 est une sorte de quote ' oblique 0x80 est quant a lui le caractère euros...
voila donc ce que je cherche a faire c'est remplacer tous les caracter entre 0x81 et 0x9f par autre chose (voir meme des blancs à la limite, j'adapterai apres...) et remplacer le 0x80 par le caractère euro du iso-8859-15
voila. Etienne
Comme tout n'est pas franchement lisible dans mon mail
0x92 est une sorte de quote ' oblique
0x80 est quant a lui le caractère euros...
voila donc ce que je cherche a faire c'est remplacer tous les caracter entre
0x81 et 0x9f par autre chose (voir meme des blancs à la limite, j'adapterai
apres...)
et remplacer le 0x80 par le caractère euro du iso-8859-15
Comme tout n'est pas franchement lisible dans mon mail 0x92 est une sorte de quote ' oblique 0x80 est quant a lui le caractère euros...
voila donc ce que je cherche a faire c'est remplacer tous les caracter entre 0x81 et 0x9f par autre chose (voir meme des blancs à la limite, j'adapterai apres...) et remplacer le 0x80 par le caractère euro du iso-8859-15
voila. Etienne
loufoque
Etienne SOBOLE a dit le 19/01/2005 15:30:
iconv("utf-8", "iso-8859-15", $text) : alors la le ? est bien converti, mais les caractère windows (genre le 0x92) interrompe tout simplement le traitement de la chaine de caractère... il manque donc la fin...
iconv('utf-8', 'ISO-8859-15//TRANSLIT', $text) ou iconv('utf-8', 'ISO-8859-15//IGNORE', $text) suivant l'effet voulu.
cf. la doc de la fonction iconv.
Tout de même, je ne comprends pas l'intérêt du truc. Quand on a du bel UTF-8, autant le garder.
Etienne SOBOLE a dit le 19/01/2005 15:30:
iconv("utf-8", "iso-8859-15", $text) : alors la le ? est bien converti, mais
les caractère windows (genre le 0x92) interrompe tout simplement le
traitement de la chaine de caractère... il manque donc la fin...
iconv('utf-8', 'ISO-8859-15//TRANSLIT', $text)
ou
iconv('utf-8', 'ISO-8859-15//IGNORE', $text)
suivant l'effet voulu.
cf. la doc de la fonction iconv.
Tout de même, je ne comprends pas l'intérêt du truc.
Quand on a du bel UTF-8, autant le garder.
iconv("utf-8", "iso-8859-15", $text) : alors la le ? est bien converti, mais les caractère windows (genre le 0x92) interrompe tout simplement le traitement de la chaine de caractère... il manque donc la fin...
iconv('utf-8', 'ISO-8859-15//TRANSLIT', $text) ou iconv('utf-8', 'ISO-8859-15//IGNORE', $text) suivant l'effet voulu.
cf. la doc de la fonction iconv.
Tout de même, je ne comprends pas l'intérêt du truc. Quand on a du bel UTF-8, autant le garder.
Olivier Miakinen
alors attention ce message va etre compliqué !!! j'ai un formulaire en UTF8 une personne met dedans un texte via un copier coller depuis word contenant le carcatère ' (code ascii 0x92) et ? (code ascii 0x80)
Ce qu'il faudrait savoir, c'est sous quelle forme exactement ils t'arrivent. Il serait même possible qu'ils soient encodés en UTF-8 à partir d'un code inexistant, ce qui donnerait (non vérifié) : 0xC2 0x80 pour 0x80, et 0xC2 0x92 pour 0x92.
premier idée: deuxième idée: troisieme idée: quatrieme idée:
C'est bien d'avoir des idées, mais auparavant il faudrait savoir de quoi l'on part. Je veux bien te répondre plus précisément, mais pour le faire j'aimerais que tu fasses un test : saisir une chaîne connue avec de l'ascii, des caractères accentués et ces caractères problématiques, et afficher les valeurs numériques de chaque caractère reçu.
Tu es prêt ? Je te propose de taper dans Word le texte suivant : "c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
[...] comment est ce que je fais pour remplacer mon 0x80 par un ? dans le charset iso-8859-15 ?
0xA4. Mais l'apostrophe courbe n'existe pas dans cet encodage.
alors attention ce message va etre compliqué !!!
j'ai un formulaire en UTF8
une personne met dedans un texte via un copier coller depuis word contenant
le carcatère
' (code ascii 0x92)
et
? (code ascii 0x80)
Ce qu'il faudrait savoir, c'est sous quelle forme exactement ils
t'arrivent. Il serait même possible qu'ils soient encodés en UTF-8 à
partir d'un code inexistant, ce qui donnerait (non vérifié) : 0xC2 0x80
pour 0x80, et 0xC2 0x92 pour 0x92.
premier idée:
deuxième idée:
troisieme idée:
quatrieme idée:
C'est bien d'avoir des idées, mais auparavant il faudrait savoir de quoi
l'on part. Je veux bien te répondre plus précisément, mais pour le faire
j'aimerais que tu fasses un test : saisir une chaîne connue avec de
l'ascii, des caractères accentués et ces caractères problématiques, et
afficher les valeurs numériques de chaque caractère reçu.
Tu es prêt ? Je te propose de taper dans Word le texte suivant :
"c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
[...] comment est ce que je
fais pour remplacer mon 0x80 par un ? dans le charset iso-8859-15 ?
0xA4. Mais l'apostrophe courbe n'existe pas dans cet encodage.
alors attention ce message va etre compliqué !!! j'ai un formulaire en UTF8 une personne met dedans un texte via un copier coller depuis word contenant le carcatère ' (code ascii 0x92) et ? (code ascii 0x80)
Ce qu'il faudrait savoir, c'est sous quelle forme exactement ils t'arrivent. Il serait même possible qu'ils soient encodés en UTF-8 à partir d'un code inexistant, ce qui donnerait (non vérifié) : 0xC2 0x80 pour 0x80, et 0xC2 0x92 pour 0x92.
premier idée: deuxième idée: troisieme idée: quatrieme idée:
C'est bien d'avoir des idées, mais auparavant il faudrait savoir de quoi l'on part. Je veux bien te répondre plus précisément, mais pour le faire j'aimerais que tu fasses un test : saisir une chaîne connue avec de l'ascii, des caractères accentués et ces caractères problématiques, et afficher les valeurs numériques de chaque caractère reçu.
Tu es prêt ? Je te propose de taper dans Word le texte suivant : "c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
[...] comment est ce que je fais pour remplacer mon 0x80 par un ? dans le charset iso-8859-15 ?
0xA4. Mais l'apostrophe courbe n'existe pas dans cet encodage.
Etienne SOBOLE
Tu es prêt ? Je te propose de taper dans Word le texte suivant : "c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
oui c'est typiquement le genre de text que j'ai et qui merdoie... je tape ca dans word. je fais un copier coller dans mon formulaire qui est en UTF-8 sous windows... je le poste...
ou finale je voudrai l'envoyer en ISI-8859-15 en remplace le ' (courbe) par un ' normal...
voila. Etienne
Tu es prêt ? Je te propose de taper dans Word le texte suivant :
"c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
oui c'est typiquement le genre de text que j'ai et qui merdoie...
je tape ca dans word.
je fais un copier coller dans mon formulaire qui est en UTF-8 sous
windows...
je le poste...
ou finale je voudrai l'envoyer en
ISI-8859-15 en remplace le ' (courbe) par un ' normal...
Tu es prêt ? Je te propose de taper dans Word le texte suivant : "c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
oui c'est typiquement le genre de text que j'ai et qui merdoie... je tape ca dans word. je fais un copier coller dans mon formulaire qui est en UTF-8 sous windows... je le poste...
ou finale je voudrai l'envoyer en ISI-8859-15 en remplace le ' (courbe) par un ' normal...
voila. Etienne
Etienne SOBOLE
iconv('utf-8', 'ISO-8859-15//TRANSLIT', $text) ou iconv('utf-8', 'ISO-8859-15//IGNORE', $text) suivant l'effet voulu.
Ah j'avais pas vu ca... ca marche moyen : ca donne C'est zéro ¤. avec le magnifique exemple d'oliver...
cf. la doc de la fonction iconv.
C'est dans la doc de nexen et pas celle de php.net je suis a moitié pardonné ;)
Tout de même, je ne comprends pas l'intérêt du truc. Quand on a du bel UTF-8, autant le garder.
Mouaip... c'est une remarque pertinante... est ce que tout les client mail son capable de lire un mail en UTF-8? Parce que mon formulaire il part sous forme de mail apres...
Etienne
iconv('utf-8', 'ISO-8859-15//TRANSLIT', $text)
ou
iconv('utf-8', 'ISO-8859-15//IGNORE', $text)
suivant l'effet voulu.
Ah j'avais pas vu ca...
ca marche moyen : ca donne
C'est zéro ¤.
avec le magnifique exemple d'oliver...
cf. la doc de la fonction iconv.
C'est dans la doc de nexen et pas celle de php.net
je suis a moitié pardonné ;)
Tout de même, je ne comprends pas l'intérêt du truc.
Quand on a du bel UTF-8, autant le garder.
Mouaip...
c'est une remarque pertinante... est ce que tout les client mail son capable
de lire un mail en UTF-8?
Parce que mon formulaire il part sous forme de mail apres...
iconv('utf-8', 'ISO-8859-15//TRANSLIT', $text) ou iconv('utf-8', 'ISO-8859-15//IGNORE', $text) suivant l'effet voulu.
Ah j'avais pas vu ca... ca marche moyen : ca donne C'est zéro ¤. avec le magnifique exemple d'oliver...
cf. la doc de la fonction iconv.
C'est dans la doc de nexen et pas celle de php.net je suis a moitié pardonné ;)
Tout de même, je ne comprends pas l'intérêt du truc. Quand on a du bel UTF-8, autant le garder.
Mouaip... c'est une remarque pertinante... est ce que tout les client mail son capable de lire un mail en UTF-8? Parce que mon formulaire il part sous forme de mail apres...
Etienne
Etienne SOBOLE
hop hop hop j'ai dis une connerie... ca marche nickel ton truc...
merci donc... Etienne
hop hop hop
j'ai dis une connerie... ca marche nickel ton truc...
hop hop hop j'ai dis une connerie... ca marche nickel ton truc...
merci donc... Etienne
Olivier Miakinen
Tu es prêt ? Je te propose de taper dans Word le texte suivant : "c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
oui c'est typiquement le genre de text que j'ai et qui merdoie...
Le symbole euro qui se transforme en symbole monétaire quelque chose (je ne sais plus son nom exact, certains l'appellent « trou du cul »), ce n'est pas un problème de Win1252, mais de configuration de ton Outlook Express.
Alors de deux choses l'une : soit tu changes de logiciel, soit tu vas sur fr.usenet.8bits chercher les articles de Denis Liégeois, qui est *le* spécialiste mondialement connu de configuration d'Outlook Express pour ce qui concerne les encodages de caractères.
Tu es prêt ? Je te propose de taper dans Word le texte suivant :
"c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
oui c'est typiquement le genre de text que j'ai et qui merdoie...
Le symbole euro qui se transforme en symbole monétaire quelque chose
(je ne sais plus son nom exact, certains l'appellent « trou du cul »),
ce n'est pas un problème de Win1252, mais de configuration de ton
Outlook Express.
Alors de deux choses l'une : soit tu changes de logiciel, soit tu vas
sur fr.usenet.8bits chercher les articles de Denis Liégeois, qui est
*le* spécialiste mondialement connu de configuration d'Outlook Express
pour ce qui concerne les encodages de caractères.
Tu es prêt ? Je te propose de taper dans Word le texte suivant : "c'est zéro ¤ !" (avec l'apostrophe courbe, bien sur)
oui c'est typiquement le genre de text que j'ai et qui merdoie...
Le symbole euro qui se transforme en symbole monétaire quelque chose (je ne sais plus son nom exact, certains l'appellent « trou du cul »), ce n'est pas un problème de Win1252, mais de configuration de ton Outlook Express.
Alors de deux choses l'une : soit tu changes de logiciel, soit tu vas sur fr.usenet.8bits chercher les articles de Denis Liégeois, qui est *le* spécialiste mondialement connu de configuration d'Outlook Express pour ce qui concerne les encodages de caractères.