GNT sans publicité, site mobile, fonctionnalitées exclusives...

Probleme de page de codes... avec Win 2000

Le
NimbUs
Bonjour à tous et à chacune

Le problème qui m'amène est de ceux qui ont empoisonné, empoisonnent
et empoisonneront vraisemblablement les victimes de Microsoft pour les
siècles à venir, j'ai nommé : les "pages de codes" - mumrmures dans la
salle.

J'explique : j'ai un système avec Windows 98, plusieurs partitions
FATxx, qui utilise la page de codes *437*. J'aime la page de codes
437. Je me suis donné du mal jadis pour forcer ce système, et d'autres
encore, à utiliser la page de codes 437.

Récemment voilà-t'il pas que j'ai installé Windows 2000 Pro (français)
sur une partition FAT32 nouvelle; or sans me demander mon accord ni
même m'en avertir, cet OS s'est rêglé pour utiliser la page de codes
*850* :-(

C'est absolument intolérable, car cela affecte la façon dont les noms
de fichiers aussi bien courts que longs sont enregistrés sur le volume
! Aussi bien Scandisk du côté 98, que sa contrepartie du côté 2k
rapportent des erreurs et pis encore, chacun d'eux voudrait "corriger"
le système de fichiers (c'est à dire, achever de le détruire! )

Ce n'est pas que je m'amuse à créer des noms de fichiers, longs ou
courts, avec des caractères "hauts", mais Microsoft dans son désir
infantile de parader en crée toute une floppée ("tasse à café.bmp"
..!), y compris hélas! des fichiers et dossiers "système" ("Menu
Démarrer" ! Quelle ineptie!)

Bref! Je ne puis laisser les choses en l'état. Quelqu'un sait-il
comment instruire Windows 2k afin qu'il enregistre désormais les noms
de fichiers avec la page de code 437 ? Si possible, sans
réinstallation, mais s'il le faut soit!

Pour mémoire, la page de code "OEM" influe sur deux aspects (au moins)
: 1) l'affichage des caractères dans les boîtes "DOS"/consoles NTVDM :
ceci est non crucial, et je suppose qu'un CHCP peut y remédier , 2)
crucialement : l'enregistrement des noms dans les répertoires, ainsi
que la génération automatique des noms "courts". C'est ce dernier
point que je dois, absolument, rêgler !

Merci, suivez mon regard, merci! à tous ceux qui, n'écoutant que leur
courage, couchent avec Microsoft et se dévouent ainsi pour la bonne
cause ;=)

--
NimbUs
Lire les 14 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Goiffon
Le #13051361
NimbUs wrote:
Bref! Je ne puis laisser les choses en l'état. Quelqu'un sait-il
comment instruire Windows 2k afin qu'il enregistre désormais les noms
de fichiers avec la page de code 437 ?



Windows travaille avec Unicode, et un nom de fichier doit pouvoir
contenir tous les caractères dudit jeux de caractère.
Y-a-t-il des caractères que vous ne pouvez pas utiliser ??
NimbUs
Le #13051351
Bonjour!

Pierre Goiffon a écrit :


Windows travaille avec Unicode, et un nom de fichier doit pouvoir
contenir tous les caractères dudit jeux de caractère.



Certes. Mais seul le nom de fichier "long" utilise (plus ou moins)
Unicode. Les noms courts générés automatiquement par Windows, et
enregistrés dans le répertoire, dépendent de la "page de code OEM" du
sytème. Par ailleurs si le nom "long" est, par chance, acceptable
comme nom court 8.3, alors seule l'enregistrement "court" est créé ;
or, les caractères acceptables dans les noms 8.3 sont eux mêmes
fonction de la page de code système OEM . IBM/Microsoft ont
remarquablement raté l'internationalisation de DOS puis de Windows :-(

Y-a-t-il des caractères que vous ne pouvez pas utiliser ??



Ce n'est pas la question. Le problème est que pour un nom de fichier
tel que "tasse à café.bmp", il n'est pas enregistré de la même façon
sur le disque par mon Windows 98 (page de code OEM : 437) et par mon
Windows 2000 (page 850). Et c'est insoluble en l'état, si l'entrée de
répertoire est correcte pour l'un elle est incorrecte pour l'autre, et
vice versa !
Je ne peux plus faire tourner un scandisk sans (prétendue) erreur, ni
a fortiori defragmenter! Grrr...

Le seul moyen d'en sortir est de modifier ou réinstaller Win 2k pour
qu'il utilise la CP 437 comme un système civilisé (ou de faire passer
Win 98 à la CP 850, mais ce n'est pas simple et je n'en voudrais pas)

Voyons si qqn a une méthode...

--
NimbUs
Pierre Goiffon
Le #13051061
NimbUs wrote:
Le problème est que pour un nom de fichier
tel que "tasse à café.bmp", il n'est pas enregistré de la même façon
sur le disque par mon Windows 98 (page de code OEM : 437) et par mon
Windows 2000 (page 850).



J'ai beau relire votre message je ne comprend pas le prb précisément.
Décrivez ce qu'il se produit plutôt que d'avancer une explication
technique. Par exemple :

- Visiblement vous lisez une même partition FAT32 depuis un Windows 98
et un 2000, et les fichiers enregistrés par Windows 2000 apparaissent
incorrectement sous Windows 98 ?
- Quels sont les caractères posant prb, où est-ce qu'ils sont mal
affichés (console, explorateur, ...) ?
- Lorsque vous dites avoir configuré votre Windows 98 pour utiliser
cp457, quelle procédure avez vous suivi ?
- (...)
NimbUs
Le #13027391
Pierre Goiffon a écrit :

J'ai beau relire votre message je ne comprend pas le prb précisément.



Hélas!

Décrivez ce qu'il se produit plutôt que d'avancer une explication
technique.



Désolé, c'est technique. Mais je vais essayer de vous le faire saisir
concrètement.

- Visiblement vous lisez une même partition FAT32 depuis un Windows 98
et un 2000, et les fichiers enregistrés par Windows 2000 apparaissent
incorrectement sous Windows 98 ?



Et vice versa.

- Quels sont les caractères posant prb, où est-ce qu'ils sont mal
affichés (console, explorateur, ...) ?



Les caractères posant problème sont ceux qui ne sont pas traités de la
même façon sous les pages de codes différentes. Exemple : prenons le
dossier (créé par Windows) nommé : "Modèles". Le caractère
problématique est ici le "è". Pour créer le nom de dossier 8.3
associé, Windows essaye de mettre le nom en majuscules : MODÈLES avec
un E-accent grave. Mais ce caractère n'existe pas dans la page de
codes 437! Donc il le remplace par un soulignement : MOD_LES.

Ainsi, le nom court correct enregistré dans le répertoire contient
E-accent grave, codé en hexadécimal : D4 dans la page de codes 850,
mais _ codé : 5F dans la p.c. 437. C'est inconciliable, le nom ne peut
pas être correct pour les deux pages à la fois !!! Et il n'y a rien
sur un disque FAT qui indique dans quelle page de codes les noms sont
inscrits. C'est une faute irrémédiable d'IBM et MS qui remonte aux
années 1982 ou 3 (MS DOS 3.1 je crois).

- Lorsque vous dites avoir configuré votre Windows 98 pour utiliser
cp457, quelle procédure avez vous suivi ?



J'ai utilisé le programme ad hoc qui s'appelle changecp, ou quelque
chose comme ça, et qui vient avec l'installation de Windows 9x. En
réalité j'ai complété "à la main" car je n'avais pas la bonne version
de chgcp - mais ceci a peu d'importance. Je peux aussi vous expliquer,
si vous insistez, pourquoi la CP 850 est peu souhaitable, cela en fait
doit apparaître évident pour quiquonque a compris ce que sont ces
fameuses "pages de codes" (c'est à dire, à peu près personne, y
compris chez Microsoft...)

- (...)



Mais j'aimerais bien que ce fil ne dévie pas trop, j'ai une question
précise quoique épineuse à régler au plus vite...

Merci

--
NimbUs
Pierre Goiffon
Le #13027381
NimbUs wrote:
Les caractères posant problème sont ceux qui ne sont pas traités de la
même façon sous les pages de codes différentes. Exemple : prenons le
dossier (créé par Windows) nommé : "Modèles". Le caractère
problématique est ici le "è". Pour créer le nom de dossier 8.3
associé, Windows essaye de mettre le nom en majuscules : MODÈLES avec
un E-accent grave. Mais ce caractère n'existe pas dans la page de
codes 437! Donc il le remplace par un soulignement : MOD_LES.

Ainsi, le nom court correct enregistré dans le répertoire contient
E-accent grave, codé en hexadécimal : D4 dans la page de codes 850,
mais _ codé : 5F dans la p.c. 437. C'est inconciliable, le nom ne peut
pas être correct pour les deux pages à la fois !!! Et il n'y a rien
sur un disque FAT qui indique dans quelle page de codes les noms sont
inscrits. C'est une faute irrémédiable d'IBM et MS qui remonte aux
années 1982 ou 3 (MS DOS 3.1 je crois).



Quel Windows crée le nom court ?
Juste par curiosité, pourquoi accéder au fichier par nom court ?
Et pourquoi partager une même partition entre 2 OS ? Multiboot ? Est-ce
que certaines de vos applications ne tournent pas sur le 2000, malgrés
le mode de compatibilité ?

Je ne connais pas le moyen de stocker les noms de fichier en FAT comme
en NTFS. Je m'étais juste laissé entendre dire que ces noms pouvaient
contenir tous les caractère Unicode. Vous soulevez l'absence en FAT
d'indication du codage utilisé pour les caractères des noms de
fichier... C'est en effet plutôt très génant et je comprend donc mieux
votre question maintenant.

En cherchant rapidement quelques infos j'ai commencé par le site de
l'indispensable JCB, et trouvé ceci :
http://www.bellamyjc.org/fr/theorie...ertoireFAT

Qui indique que les entrées pour les noms longs utilisent Unicode
(UTF-16 je suppose puisque 2 octets par caractère ? mais comment est-ce
que cela se passe pour les surrogates ??)
Et rien n'est indiqué pour les entrées de nom court. Confirmé en lisant
ceci :
http://www.nslu2-linux.org/wiki/How...ileSystems

Après un petit Google, trouvé ceci :
Qui semble répondre à votre prb (clé "CodePage")... si vous utilisiez
Windows CE :) Regedit ne m'a malheureusement pas remonté de valeur
correspondante dans la bdr du Windows 2000 de ce poste.

Par ailleurs, il y a dans les options régionales, dans l'onglet général,
bouton avancées, une boite de dialogue parlant de conversion de pages de
code. Je ne connais pas son utilité exacte ?
En trouvant ceci :
(partie "Euro symbol (¤) support")
Il semblerait que ce soit ce qui est utilisé par le mode console ? Peut
être une piste...
Que donne aussi les propriétés de la partition dans le gestionnaire de
disque de Windows 2000 ? (pas de quoi tester ici, qu'une seule partition
NTFS)

Ici :
http://www.microsoft.com/technet/ar...dep02.mspx
On peut lire "By default, the file is generated using the system ANSI
codepage". il y a donc un codage par défaut définit quelque part ?

Je suis étonné de ne rien avoir trouvé de probant sur microsoft.com,
mais il faudrait y passer plus de temps... Je pense aussi que la réponse
se trouve qq part dans le resource kit Windows 2000 (vous devriez
pouvoir le trouver en bibliothèque ?)
Publicité
Suivre les réponses
Poster une réponse
Anonyme