8
votes

Codage CP1252

Quand j'essaie ce qui suit en Java:

system.out.println (system.geproperty ("fichier.encoding"));

i get cp1252 comme codage.

Y a-t-il un moyen de savoir où provient cette valeur? (Comme des variables d'environnement ou quelque chose)

J'aimerais imprimer la valeur de l'encodage sur l'invite de commande à l'aide d'une commande comme Systeminfo sur Windows XP.


2 commentaires

Peut-être que des informations connexes sont sur Stackoverflow.com/questions/1336930/...


Just Fyi, CP1252.com a quelques informations sur les veuves CodePage 1252


5 Réponses :


0
votes

Je crois que ce codage est défini par la JVM afin qu'il ne serait donc pas logique de le récupérer de l'extérieur


2 commentaires

Non, ce n'est pas, il s'agit d'un codage de Windows pour les outils de ligne de commande


Kico: Pas, ce n'est pas le cas. Le codépage utilisé sur la ligne de commande est une fois différent.



4
votes

Cette valeur est, sous Windows au moins, le code de code hérité utilisé pour le texte non unicode. C'est ce que l'OS convertit des chaînes à partir de quand vous utilisez les anciennes API ANSI. Pour tout programme plus récent, il doit sans effet (cela étant dit, je vois toujours suffisamment de programmes qui utilisent les variantes A A et non des fonctions API, malheureusement).

Pour votre programme Java, rien de tout cela ne devrait y être, car Java utilise Unicode exclusivement. Si vous souhaitez écrire ou lire des fichiers texte dans le codépage du système, vous en aurez besoin.

Pour l'invite de commande, cependant, le codage n'est pas une valeur significative, car la console par défaut utilise l'encodage OEM qui imite l'un des âges DOS (850 ou 437 est assez courant).


0 commentaires

7
votes

CP1252 est le codage par défaut sur les installations anglaises de MS Windows (ce que Microsoft se réfère à ANSI). Java Par défaut prendra le système local comme codage de caractères par défaut. Ce que cela signifie est dépendant du système. En général, je n'aime pas compter sur les codages par défaut. Si je sais que mon texte sera pure ASCII, je l'ignore - sinon je définis le codage explicitement lors de l'instanciation de INPUTStreamReader , sortiestreamwriter , String et etc. getBytes .

Notez que CP1252 est pas l'encodage par défaut de l'invite de commande Windows. C'est le plus ancien CP437, que vous pouvez voir (et changer) à l'aide de la commande CHCP .


0 commentaires

2
votes

Étant donné que cela n'a rien à voir avec Java, vous pouvez simplement choisir d'utiliser un wsh script: xxx

Voir aussi la commande CHCP ; Vous voudrez peut-être lire sur la manière dont l'encodage fonctionne sur l'invite de commande Windows ( Certains liens dans ce blog post ).


0 commentaires

1
votes

Autant que j'ai découvert, il s'agit du codage de votre fichier source Java, votre sortie changera une fois que vous avez modifié son fichier de fichier texte. Sur Eclipse, changez-le de la propriété de ressources (Alt + Entrée ou clic droit sur ce fichier, allez à la ressource). Changer le fichier texte Encodage de CP1252 à quelque chose d'autre, dites UTF-8, woo ... Votre sortie ne sera plus cp1252 ..


0 commentaires