Bonjour,
Voilà le souci : sous 6.5 les documents enregistrés au format .txt était encodés en Ansi. Avec XI R3 ils le sont en UTF-8 et cela nous pose des soucis.
Quelqu'un saurait comment rétablir l'encodage en Ansi?
Merci.
Bonjour,
Voilà le souci : sous 6.5 les documents enregistrés au format .txt était encodés en Ansi. Avec XI R3 ils le sont en UTF-8 et cela nous pose des soucis.
Quelqu'un saurait comment rétablir l'encodage en Ansi?
Merci.
Hello,
Ca doit être possible...
Pour moi çà se joue aux niveaux des variables d'environnement BO (côté server).
Et après qq recherches sur internet, il s'agirait de BO_UTF_BOM à modifier...
A tester...
J'ai créé cette variable, redémarrer le serveur et ... cela ne règle pas le souci.
Je ne pense pas que ce soit à toi de la créer...
Regardes dans le registre peut-être...
juste pour rajouter que l'encodage UTF-8 (et plus largement l'unicode) est recommandé par SAP (en tout cas pour la BI4 c'est le cas)
Dans le registre je retrouve la variable créée ...
Prima : le souci est que nous avons créé un process où intervient BO : un fichier texte est généré via BO puis sert à charger une table.
Le fichier généré sous BO XI n'est pas encodé de la même façon qu'en 6.5 et l'on se retrouve avec des données non exploitables en base.
il y a bien un script pour effectuer le chargement en base de données.
Pourquoi ne pas modifier ce script pour qu'il effectue le changement de format?
Nous utilisons sqlloader pour le chargement des données. Je ne pense pas qu'il soit possible d'intervenir à ce niveau.
Par contre c'est une macro qui permet d'exporter automatiquement de BO vers .txt. J'ai essayé de convertir à ce niveau mais sans résultat, mais je ne suis pas une experte en VB, du coup je m'y prends peut-être mal. Des suggestions?
avec ce code peut être:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13' Convert Unicode to Ascii Const ForReading = 1, ForWriting = 2, ForAppending = 8 Const ModeAscii = 0, ModeUnicode = -1 Dim fso, f_in, f_out Set fso = CreateObject("Scripting.FileSystemObject" ) Set f_in = fso.OpenTextFile("Hello_u.txt", ForReading,, ModeUnicode) Set f_out = fso.OpenTextFile("Hello_a.txt", ForWriting, true, ModeAscii) Do Until f_in.AtEndOfStream f_out.Write f_in.Read(1) Loop f_in.Close f_out.Close
Merci Prima.
J'ai une erreur pour la ligne :
f_out.Write f_in.Read(1)
=> Invalid procedure call or argument
Le fichier généré est vide mais ... encodé ANSI.
tu as essayé ce code juste avec le bon nom de fichier (sans passer par la génération BO)?
Mode op:
- Tu génères ton fichier normalement (il serait donc format windows)
- Tu réalises une petite macro pour passer ce fichier en unix
et après tu réunis le tout.
J'ai inclus ce code dans la macro du document BO en fait.
En gros le process est :
1- un batch lance BO
2- une macro commande un rafraichissement du doc ouvert, enregistre au format .txt
3- un autre process prend la relève et traite ce fichier texte
J'ai donc modifié la macro pour que le fichier soit lu et alimente un autre fichier en format ascii (la macro que tu m'as fourni).
il y a peut être un soucis dans la macro
On a tendance à l'oublier mais google est notre ami![]()
Partager