J'ai un script Perl qui imprime des informations à la console en russe. Le script sera exécuté sur plusieurs systèmes d'exploitation, de sorte que l'encodage de la console peut être cp866, koi8-r, utf-8 ou un autre. Existe-t-il un moyen portable de détecter l'encodage de la console afin que je puisse configurer STDOUT en conséquence pour que le texte soit imprimé correctement?Encodage de sortie de la console Autodetect en perl
Répondre
Si vous utilisez Windows, il y a Win32::Codepage.
Ne fonctionne pas sur Windows. Au moins, je n'ai pas réussi à le faire fonctionner. Je crois qu'il s'appuie sur des variables d'environnement pour détecter l'encodage de la console qui ne sont généralement pas définies sur Windows. – n0rd
C'est intéressant: 'Term :: Encoding :: get_encoding()' renvoie 'utf-8' sur mon Windows Server 2012 en utilisant cygwin perl. 'chcp' montre que la console est en fait' cp-437', mais les scripts perl sont capables d'imprimer des caractères non latins. Donc je suis confus maintenant. – n0rd
Découvrez pourquoi la sortie de la commande 'chcp' et l'API [GetConsoleOutputCP] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms683169 (v = vs.85) .aspx) API appelez en désaccord. Essayez avec un Perl natif au lieu de Cygwin. – daxim
- 1. asp.net Encodage de sortie?
- 2. Sortie de la console SharePoint
- 3. Formatage de la sortie de la console
- 4. Changement de la sortie de la console en Java
- 5. Sortie de la console colorée de Xcode
- 6. Sortie de la console vers la chaîne
- 7. obtenir la sortie de la console
- 8. Voir la sortie de la console sans console?
- 9. sortie de la console Désactiver de subprocess.Popen en Python
- 10. Lire la sortie Unicode de l'application console
- 11. Remplacer la console de sortie dans Xcode
- 12. sortie html-encodage && erreur de chaîne incorrecte
- 13. cobol - sortie de la console java
- 14. Encodage UTF-8 sur un handle de fichier en Perl
- 15. Comment afficher la sortie de la console Perl dans une interface graphique?
- 16. Perl Problèmes de sortie
- 17. testdriven.net sortie de la console log4net
- 18. Comment sortir en sortie de la console tampon?
- 19. Filehandle pour la sortie de la commande système en Perl
- 20. Sortie de console d'application Win32?
- 21. Affichage de la sortie de la console NUnit dans CruiseControl.NET
- 22. Fenêtre de sortie de la console dans la DLL
- 23. Comment modifier la sortie d'écran de ffmpeg.exe en Perl?
- 24. Comment puis-je capturer la sortie de pkgrm en Perl?
- 25. Supprimer la sortie de la console de bibliothèque tierce?
- 26. Rediriger la sortie Trace vers la console
- 27. Comment arrêter la fermeture de la console à la sortie?
- 28. Java - Sortie de la console de contrôle sous Windows/Linux
- 29. Message de sortie de thread dans la console .Net MVC
- 30. Comment afficher plus de décimales dans la console de sortie?
Le script sera exécuté sur tout système d'exploitation – n0rd
Sur une console Windows, c'est la meilleure solution que je connaisse. Je ne connais pas de moyen de détecter le codage de sortie sur Linux ou d'autres systèmes de type Unix. Je règle généralement le terminal au codage UTF-8 et l'utilise pour Perl. Sur Windows, autant que je sache, il n'est pas possible de définir la page de code de la fenêtre du terminal. Quant à une solution portable, ce serait génial mais je ne sais pas si ça existe. –
Sur l'encodage de la console Windows est défini avec le programme 'chcp', je suppose qu'il existe également une solution de programmation. Quoi qu'il en soit, forcer un codage de console particulier n'est pas une solution. – n0rd