Quand j'essaie ce qui suit en Java: P>
i get Y a-t-il un moyen de savoir où provient cette valeur? (Comme des variables d'environnement ou quelque chose) p>
J'aimerais imprimer la valeur de l'encodage sur l'invite de commande à l'aide d'une commande comme Systeminfo sur Windows XP. P> system.out.println (system.geproperty ("fichier.encoding")); code> p>
cp1252 code> comme codage. p>
5 Réponses :
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 p>
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.
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 EM> sans effet (cela étant dit, je vois toujours suffisamment de programmes qui utilisent les variantes A A et non des fonctions API, malheureusement). P>
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. P>
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). P>
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 Notez que CP1252 est pas em> 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 INPUTStreamReader code>,
sortiestreamwriter code>,
String code> et etc.
getBytes code>. p>
CHCP code>. P>
Étant donné que cela n'a rien à voir avec Java, vous pouvez simplement choisir d'utiliser un wsh script: Voir aussi la commande CHCP code>; 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 ). P> P>
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 .. p>
Peut-être que des informations connexes sont sur Stackoverflow.com/questions/1336930/...
Just Fyi, CP1252.com a quelques informations sur les veuves CodePage 1252