Tengo un programa de línea de comandos escrito en Python, y cuando lo canalizo a través de otro programa en la línea de comandos, sys.stdout.encoding
es None
. Esto tiene sentido, supongo, la salida podría ser otro programa, o un archivo al que lo está redirigiendo, o lo que sea, y no sabe qué codificación desea. ¡Pero yo tampoco! Este programa será utilizado por muchas personas diferentes (me gusta) de diferentes maneras. ¿Debería ir a lo seguro y dar como resultado solo ascii (reemplazando caracteres no ascii con signos de interrogación)? ¿O debería emitir UTF-8, ya que está tan extendido en estos días?Si un programa de línea de comando no está seguro de la codificación de stdout, ¿qué codificación debería emitir?
Respuesta
Le sugiero que utilice la configuración regional actual.
Python2> import locale
Python2> locale.getpreferredencoding()
'UTF-8'
el sistema sabe lo que debería ser, y el otro lado, si también utiliza la localización actual, va a hacer lo correcto.
Debe utilizar el valor devuelto por locale.getpreferredencoding()
.
Deberías producir UTF-8 porque eso es lo que todos deben usar. Es un error no ser. ;)
Lo siento, esto es más de un comentario que una respuesta constructiva. – Weboide
si su aplicación realmente no se ocupa de una gran cantidad de internacionalización, ascii
debería ser suficiente. pero si no, diría que utf-8
o mejor todavía utf-16
debería estar a la orden del día.
El objetivo de UTF-8 es que los programas que no se ocupan explícitamente de la internacionalización en su mayoría solo funcionan en datos que no son ASCII. UTF-16 es un mal arranque en Linux; incluso en Windows nunca es apropiado cuando solo estás adivinando. –
- 1. Codificación de caracteres de línea de comando desde PHP's exec()
- 2. ¿Cómo puedo estar seguro de la codificación del archivo?
- 3. ¿Qué sistema de codificación debería usar en Emacs?
- 4. Estándares de codificación y longitud de línea
- 5. ¿Qué es un buen juego de codificación?
- 6. ¿Por qué IIS no admite la codificación de transferencia fragmentada?
- 7. ¿Cómo puedo emitir un solo comando desde la línea de comando a través de sql plus?
- 8. JSON de codificación no está trabajando con matriz de objetos
- 9. ¿Cómo capturo el texto de la línea de comando que no se envía a stdout?
- 10. codificación de $ _SERVER vars?
- 11. Estándares de codificación PHP
- 12. Codificación de archivo por lotes
- 13. wkhtmltopdf - número de codificación
- 14. Codificación del programa de predicción de fútbol: predicciones inconsistentes
- 15. Codificación de ... algún tipo?
- 16. Comprensión de la codificación de video FFMPEG
- 17. Cómo manejar la codificación respuesta de urllib.request.urlopen()
- 18. ¿La codificación no es una enumeración?
- 19. ¿Qué es la codificación base32?
- 20. Forma correcta de salir del programa de línea de comando?
- 21. Perl - Codificación de archivos y comparación de palabras
- 22. quitar la codificación de XmlSerializer
- 23. ¿Cómo corrijo la codificación de caracteres de un archivo?
- 24. ¿Qué es este tipo de estilo de codificación en c?
- 25. ¿Qué página de codificación/código usa cmd.exe?
- 26. ¿Qué es la codificación de caracteres y por qué debería molestarme con ella?
- 27. ¿En qué codificación está almacenado un carácter Java?
- 28. ¿Existe un comando de línea de comando para verificar qué versión de .NET está instalada?
- 29. ¿Qué editor usas para la codificación OpenLaszlo?
- 30. Codificación de caracteres Javascript predeterminada?
Esto se ve perfecto. ¡Gracias! – mackstann