Page 1 sur 1

Fichier partiellement binaire en texte?

Posté : 10 oct. 2016, 11:52
par fitnopk
Bonjour,

J'essai de parser des fichiers exportés d'un CRM pour importer sur un autre CRM. Le problème c'est que les fichiers exportés ne sont pas entièrement rempli de texte: les caractères spéciaux et non-ascii apparaissent en binaire
^M
D\202marrage en presta 1er juin d'1 personne de B2i en IMA chez Thierry Connant de Meudon. Passage par Thierry Courteau des HA Paris.^M
^M
Pas de raison d'un non r\202f\202rencement au local --> A voir avec l'acheteuse de toulouse.^M
^M
Il y a-t-il un moyen de tout remettre sous forme de texte?

Re: Fichier partiellement binaire en texte?

Posté : 10 oct. 2016, 13:41
par moogli
salut,

il te faut la table de traduction, dans ton cas \202 semble être le é :)

peux être peux tu voir avec la source de donnée pour savoir exactement quoi faire (par exemple changer le texte d'encodage).

@+

Re: Fichier partiellement binaire en texte?

Posté : 10 oct. 2016, 14:05
par fitnopk
salut,

il te faut la table de traduction, dans ton cas \202 semble être le é :)

peux être peux tu voir avec la source de donnée pour savoir exactement quoi faire (par exemple changer le texte d'encodage).

@+
Le truc c'est qu'on a déjà regardé, le CRM qu'ils utilisent est très vieux (97), ils sont obligé d'utiliser une VM windows xp et on a pas trouvé de solution.

Re: Fichier partiellement binaire en texte?

Posté : 10 oct. 2016, 15:06
par moogli
et l'éditeur il est mort . il veux pas faire de support ? :)

en dehors des \202 y a autres choses qui ne vas pas ?

y a aussi des tables indiquant les caractères et leurs codes. Par exemple
http://www.theasciicode.com.ar/extended ... e-202.html
bon par contre c'est pas un é c'est un ╩ :)
j'ai trouvé que cela pouvait correspondre à un Ê

si tu as accès à la table d'origine y a moment de regarder l'encodage utilisé.

bref sans la table de traduction c'est un peu voué à l'échec (tu n'auras pas tout les cas en dev et don cil va y avoir des problèmes sur la reprise ou l'emploi des données en prod, c'est obligé ;)

@+

Re: Fichier partiellement binaire en texte?

Posté : 10 oct. 2016, 15:26
par @rthur
L'encodage est du code OEM-850 (créé par IBM = celui utilisé pour la console DOS) en octal.

é = 0x82 (en OEM-850 + notation hexa) = \202 (en notation octal)

https://fr.wikipedia.org/wiki/Page_de_code_850




Je n'ai pas essayé, mais tu peux essayer de les retraiter pour avoir un encodage correct avec la fonction mb_convert_encoding(), le nom de code pour le OEM-850 a utiliser dans cette fonction est "CP850" d'après les commentaires de la doc :
http://php.net/manual/fr/function.mb-co ... coding.php

Re: Fichier partiellement binaire en texte?

Posté : 10 oct. 2016, 15:34
par fitnopk
en dehors des \202 y a autres choses qui ne vas pas ?
\202 = é
\205 = à
\210 = ê
\211 = ë
\212 = è
\223 = ô
\226 = û

Et tous les ^M qui représentent probablement les \n
L'encodage est du code OEM-850 (créé par IBM = celui utilisé pour la console DOS) en octal.

é = 0x82 (en OEM-850 + notation hexa) = \202 (en notation octal)

https://fr.wikipedia.org/wiki/Page_de_code_850




Je n'ai pas essayé, mais tu peux essayer de les retraiter pour avoir un encodage correct avec la fonction mb_convert_encoding(), le nom de code pour le OEM-850 a utilisé dans cette fonction est "CP850" d'après les commentaires de la doc :
http://php.net/manual/fr/function.mb-co ... coding.php
Thanks je vais y jeter un oeil :)
EDIT: mbce n'a pas l'air de gérer l'encodage OEM-850 :(
EDIT²: l'encodage s'appel CP850 pour la fonction et ça a bien marché! Merci :priere: