Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retirer tous les caracteres windows

5 réponses
Avatar
WebShaker
Salut.

Je cherche une fonction pour supprimer tous les caractères spécifiques
windows.

Je génère des PDF à base de fichiers fournis par des clients.
Or ceux-ci m'envoient parfois des fichiers contenant des caractères
windows (ou word je ne sais pas).
Bref. À tous les coups ça plante la lib pdf...

Comment puis-je tous les virer ?
Ne conserver que les caractères ISO.

merci
Étienne.

5 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 27/05/2010 23:36, WebShaker a écrit :

Je cherche une fonction pour supprimer tous les caractères spécifiques
windows.



C'est quoi c'te bête ???

Je génère des PDF à base de fichiers fournis par des clients.
Or ceux-ci m'envoient parfois des fichiers contenant des caractères
windows (ou word je ne sais pas).



Ben écoute, si tu ne sais pas ce que tu veux enlever, et que tu ne nous
donnes pas de moyen pour le savoir à ta place (par exemple en publiant un
exemple de fichier et en décrivant ce qui te gêne), je ne vois pas bien
comment on pourrait t'aider efficacement.

Note que ma boule de cristal me susurre que peut-être tu reçois un
fichier écrit avec un charset CP1252 alors que tu t'attends à un charset
ISO-8859-1. Cela dit, cela pourrait aussi bien être du CP850 ou même de
l'ISO-8859-15, voire de l'UTF-8, et le charset d'arrivée est peut-être
censé être autre chose encore.

Quoi qu'il en soit, si c'est un problème de jeu de caractères, merci de
lire <http://french.joelonsoftware.com/Articles/Unicode.html> afin de
pouvoir ensuite décrire ce problème de façon correcte.

Maintenant, il est aussi possible puisque tu mentionnes Word qu'il
s'agisse d'instructions de formatage... mais mon petit doigt me dit que
c'est ma première idée qui est la bonne.

Bref. À tous les coups ça plante la lib pdf...



Une fois lu <http://french.joelonsoftware.com/Articles/Unicode.html>, si
ton problème est vraiment d'un jeu de caractères (charset), peut-être
trouveras-tu dans ta lib pdf un paramètre permettant de préciser ce
charset, et donc de ne perdre aucune info.

Comment puis-je tous les virer ?



Eh bien selon le cas cela pourra être par preg_replace(), par
str_replace(), par iconv(), à moins bien sûr que la solution la
meilleure consiste à les garder mais les déclarer correctement.

Ne conserver que les caractères ISO.



ISO-quoi ? ISO-8859-6 (jeu de caractères arabes) ? ISO 9000 ?

Cf. <http://alis.isoc.org/codage/iso8859/8859-6.htm> et
<http://fr.wikipedia.org/wiki/S%C3%A9rie_des_normes_ISO_9000>.


Cordialement,
--
Olivier Miakinen
Avatar
Denis Beauregard
Le 27 May 2010 21:36:25 GMT, WebShaker écrivait dans
fr.comp.lang.php:

Salut.

Je cherche une fonction pour supprimer tous les caractères spécifiques
windows.

Je génère des PDF à base de fichiers fournis par des clients.
Or ceux-ci m'envoient parfois des fichiers contenant des caractères
windows (ou word je ne sais pas).
Bref. À tous les coups ça plante la lib pdf...

Comment puis-je tous les virer ?
Ne conserver que les caractères ISO.



J'ai eu un problème de ce genre récemment.

Le client me fournissait les données dans un fichier Excel de
plusieurs Mo. Je l'enregistrais en texte tabulé et je le lisais
avec Easy PHP et PHPmyadmin.

Les caractères posant problème étaient lus correctement et bien
affichés chez moi (j'ai Seamonkey 1.1.7).

Il s'agit de : l'apostrophe de Word ’/', le …/..., le
Avatar
Olivier Miakinen
Bonjour,

Le 28/05/2010 11:06, Denis Beauregard a répondu à Étienne WebShaker :

J'ai eu un problème de ce genre récemment.

Le client me fournissait les données dans un fichier Excel de
plusieurs Mo. Je l'enregistrais en texte tabulé et je le lisais
avec Easy PHP et PHPmyadmin.



« Texte tabulé », je suppose que cela veut dire du texte simple, avec un
caractère TAB (08) entre chaque champ ? Est-ce que tu avais le choix du
jeu de caractères, par exemple CP1252, CP850, UTF-8, ISO-8859-1 ou
ISO-8859-15 ?

Les caractères posant problème étaient lus correctement et bien
affichés chez moi (j'ai Seamonkey 1.1.7).



Avec quel jeu de caractère déclaré (ou quel jeu reconnu) ? Pour le
savoir, et éventuellement le changer, dans SeaMonkey en français sur
Windows, c'est : Affichage > Encodage des caractères.

Il s'agit de : l'apostrophe de Word ’/', le …/..., le �"/oe et
l'apostrophe inverse ‘/'. Tous les autres caractères passaient
bien (mais mon client pourrait éventuellement utiliser d'autres
caractères).



Ah, voilà du concret ! Un grand merci pour cela, on va avancer.

’ = U+2019
Ce caractère existe à la position 0x92 dans CP1252, mais pas dans
ISO-8859-1 ni ISO-8859-15.

… = U+2026
Ce caractère existe à la position 0x85 dans CP1252, mais pas dans
ISO-8859-1 ni ISO-8859-15.

�" = U+FFFD U+0022
Tu as eu un problème à l'encodage car U+FFFD est le caractère de
remplacement. Je suppose avec ta translittération en « oe » que tu
voulais parler de «
Avatar
Olivier Miakinen
Le 28/05/2010 12:07, je répondais à Denis Beauregard :

�" = U+FFFD U+0022
Tu as eu un problème à l'encodage car U+FFFD est le caractère de
remplacement. Je suppose avec ta translittération en « oe » que tu
voulais parler de « �" » [...]



Et aussi :

[... remplacer] « �" » par « oe », [...] « �' » par « OE », etc.



J'ai eu le même problème, visiblement causé par une translittération
malvenue du robot de modération, lequel croyait remplacer du CP1252 par
de l'ASCII sans remarquer que c'était de l'UTF-8 (d'ailleurs le robot
n'a pas dû changer depuis des années, bien avant qu'UTF-8 soit autorisé
dans les groupes).

Cordialement,
--
Olivier Miakinen
Avatar
WebShaker
Le 28/05/2010 12:07, Olivier Miakinen a écrit :
Cela dit, autant laisser faire la fonction iconv(), surtout si tu veux
les translittérer (remplacer « ’ » par « ' », « … » par « ... », « �" »
par « oe », « ‘ » par « ` », mais aussi « �' » par « OE », etc.).



Hum.
Ok pourquoi n'y avais je pas pensé!!
merci je vais faire ca.

Etienne