InnoSetup, fichiers avec accents français et windows chinois

InnoSetup, fichiers avec accents français et windows chinois - Divers - Programmation

Marsh Posté le 06-03-2006 à 15:54:17    

Tiens j'en ai une bonne à poser à ceux qui utilisent InnoSetup.
 
Dans notre super soft de la mort qui tue, on a des fichiers bien franglais comme il faut avec des accents français, genre "couscous_filtré.bmp".
 
Hors notre soft fonctionne en chinois (avec du texte localisé etc...) mais lorsque l'on installe ce soft via InnoSetup sur un Windows Chinois (un vrai, pas un européen/américain avec les langues d'extrême-orient), le fichier passe dans la barre de progression d'IS en temps que "couscous_filtr?bmp" et sors un gros message d'erreur (blonk) "in-your-face NO" en chinois dans lequel y'a rien à capter.
 
Pour vous faire rire:
http://img85.imageshack.us/img85/7742/couscouserror0av.png
 
Alors apriori le "é" fait que l'os ou une couche prends l'octet (il bouffe le '.'), et si avec un fichier style "couscous_filtré_.bmp" ça passe (pas d'erreur), mais forcément le couple "é_" affiche un caractère chinois (très artistique au demeurant).
 
si on copie ce fichier avec le "é" via un partage réseau sur le bureau du Windows chinois, ça passe, y'a bien le "é", donc je penche vers un problème Unicode/MBCS ou autre de la part d'InnoSetup (ndlr, initialement le problème était observé sur notre viel InstallShield 5.5 de 1996, et les expérimentations se comportent de la même manière avec InnoSetup).
 
Si quelqu'un a une idée sur comment demander a InnoSetup de basculer en Unicode/MBCS ou autre truc qui passerai...


Message édité par bjone le 06-03-2006 à 16:15:57
Reply

Marsh Posté le 06-03-2006 à 15:54:17   

Reply

Marsh Posté le 06-03-2006 à 23:04:10    

Ce n'est pas le chinois qui est en cause.
 
Il faut convertir ton fichier en format OEM, par Wordpad par exemple. Ou rédiger le script par edit.com

Reply

Marsh Posté le 06-03-2006 à 23:20:50    

bin en fait c'est lié au fait que le "é" ANSI soit interprété comme un code d'echappement pour un caractère chinois.
 
mais c'est vrai que j'ai pas essayé de bricolé avec de la conversion de codage avec notepad++, mais je sais pas comment le compilo d'IS va se démerder.
 
ceci dit, on a décidé d'avancer la date d'épuration et réorganisation/renommage des fichiers du soft.... donc ça va trancher.... (surtout que dans une install 1.8go, y'a qu'un seul fichier de 1Ko qui a un "é" :D)
 
(j'étais fatigué hier soir :D)

Message cité 1 fois
Message édité par bjone le 07-03-2006 à 10:16:13
Reply

Marsh Posté le 06-03-2006 à 23:31:11    

bjone a écrit :

bin en fait c'est lié au fait que le "é" ANSI soit interprété comme un code d'echappement pour un caractère chinois.


Non, pas du tout.
 
Tu as le même problème quelque soit la langue de l'OS.
 
C'est un problème maintes fois abordés sur ce forum.

Reply

Marsh Posté le 07-03-2006 à 10:15:20    

bin non ça le fait que sur un Windows Chinois et pas un US ou un FR....

Reply

Marsh Posté le 07-03-2006 à 10:21:46    

Reply

Marsh Posté le 07-03-2006 à 11:01:20    

t'as pas bien de l'air de saisir ce que je veux dire:
 

Code :
  1. ; Script generated by the Inno Setup Script Wizard.
  2. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
  3. [Setup]
  4. AppName=My Program
  5. AppVerName=My Program 1.5
  6. AppPublisher=My Company, Inc.
  7. AppPublisherURL=http://www.mycompany.com
  8. AppSupportURL=http://www.mycompany.com
  9. AppUpdatesURL=http://www.mycompany.com
  10. DefaultDirName={pf}\My Program
  11. DefaultGroupName=My Program
  12. SourceDir=C:\src
  13. OutputDir=C:\output
  14. OutputBaseFilename=setup
  15. Compression=zip
  16. SolidCompression=yes
  17. [Languages]
  18. Name: "english"; MessagesFile: "compiler:Default.isl"
  19. Name: "chinesesimp"; MessagesFile: "compiler:Languages\ChineseSimp.isl"
  20. Name: "french"; MessagesFile: "compiler:Languages\French.isl"
  21. [Tasks]
  22. Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
  23. [Files]
  24. Source: "*"; DestDir: "{app}"; Flags: ignoreversion
  25. ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
  26. [Icons]


 
les accents ne sont pas dans mon script, ce sont les fichiers qui ont des accents, InnoSetup les stockes certainement en ANSI dans son index d'archive, et que le Xp Chinois les récupère il cherche certainement à les parser en MBCS et me bouffe le "é." de "trucé.bmp" et le échoues et retourne un "truc?bmp" que l'os refuse évidemment de prendre comme nom de fichier à ouvrir en écriture.....
 
rien à voir avec un bête problème ASCII/ANSI des batchs....


Message édité par bjone le 07-03-2006 à 11:02:12
Reply

Marsh Posté le 07-03-2006 à 11:02:26    

(bordel) :D

Reply

Marsh Posté le 07-03-2006 à 11:10:02    

et avant j'étais en LZMA et je suis repassé en ZIP pour savoir si la méthode de compression impactait l'encodage de l'index des fichiers, mais apriori non :/ (logique en même temps)


Message édité par bjone le 07-03-2006 à 11:47:46
Reply

Marsh Posté le 09-03-2006 à 23:17:25    

bon après reverse-engineering du source (notre propre source :lol:), le fichier n'était pas utilisé double :lol:
 
donc il a tout simplement giclé.
 
mais si quelqu'un a une idée, je suis toujours preneur pour ma culture personnelle....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed