2011-01-31 04:29:39 +0000 2011-01-31 04:29:39 +0000
64
64

Configurar UTF8 como codificación de caracteres por defecto en Windows 7

¿hay alguna manera de configurar Windows 7 para usar globalmente UTF-8 como estándar? es realmente molesto configurar cada editor de texto para usarlo.

Respuestas (2)

46
46
46
2011-02-02 09:14:36 +0000

La respuesta corta es no, no es posible.

Para elaborar, me temo que no encontrará una opción de codificación global en Windows 7 que le permita a ambos 1) establecer un valor predeterminado global que 2) todas las aplicaciones que usted enumeró obedecerían.

También me gustaría preguntar cuál es el problema aquí que usted está tratando de resolver?

Depende de la aplicación elegir si utilizan unicode internamente para representar los datos. Mientras que se alienta el uso de unicode , puede que nunca esté seguro de que todas sus aplicaciones de hecho lo soporten internamente.

Lo que puede hacer , sin embargo es cambiar la codificación de caracteres por defecto para cada una de las aplicaciones listadas:

  • Para Eclipse, la codificación por defecto para los nuevos archivos se puede establecer desde Windows > Preferencias > General > Tipos de contenido (ver post on Eclipse Community Forms )
  • Para Notepad++, navegar a Settings > Preferences > New Document/Default/Directory y establecer la codificación a UTF-8
  • En cuanto a Thunderbird, estoy bastante seguro de que ya utiliza UTF-8 como la codificación por defecto? (ver estas notas sobre la codificación de caracteres )
  • En el caso de OpenOffice (y LibreOffice), en realidad ni siquiera es necesario preocuparse por la codificación, ya que los documentos guardados por OpenOffice se basan en XML, en el que la codificación se especifica internamente en los archivos XML (y UTF-8 es ya el valor por defecto allí también)
  • Desde el punto de vista de UTF-8, PowerShell es complicado. Tiene una codificación por defecto de UTF-16LE.
  • Para la salida de archivos de PowerShell a UTF-8, ver esta respuesta
  • Para cambiar la codificación por defecto ver esta respuesta
23
23
23
2011-04-17 06:49:09 +0000

No es posible, principalmente porque Windows no permite UTF-8 como página de código ANSI del sistema, aunque sí tiene una página de código ANSI para UTF-8, página de código 65001 . Parece que hay varias razones para esto:

  • Cuando Unicode era nuevo Microsoft decidió que UCS-2 sería la mejor manera de apoyar a Unicode. En ese momento Unicode era de 16 bits.
  • Windows tiene una página de código ANSI para cada lenguaje soportado , a diferencia de Unix y Linux donde el lenguaje y la codificación pueden ser establecidos independientemente.
  • La página de código 65001 no funciona en todas partes. Específicamente se rompe con parte del soporte de MultiByte en Windows que esperan que los caracteres multibyte requieran uno o dos bytes mientras que UTF-8 requiere entre uno y cuatro bytes. La WriteFile() API por ejemplo devuelve un resultado incorrecto en la página de código 65001 que aparece en todo el código de la biblioteca que se basa en ella, como write() .

El difunto Michael Kaplan, que trabajaba en internacionalización en Microsoft, tenía un blog, “Sorting it all Out” , con varias publicaciones sobre temas relacionados. Le envié un correo electrónico directamente sobre algunas de estas preocupaciones en su día.