Configuración de UTF8 como codificación de caracteres predeterminada en Windows 7

Configuración de UTF8 como codificación de caracteres predeterminada en Windows 7

¿Hay alguna manera de configurar Windows 7 para que utilice globalmente UTF-8 como estándar?
Es realmente molesto configurar cada editor de texto para que lo use.

Respuesta1

La respuesta corta esNo, no es posible.

Para profundizar, 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) obedecerían todas las aplicaciones que enumeró.

Además, me gustaría preguntar cuál es el problema que estás intentando resolver.

Depende de la aplicación elegir si utiliza Unicode internamente para representar datos.Si bien se recomienda el uso de Unicode, es posible que nunca esté seguro de que todas sus aplicaciones lo admitan internamente.

Lo que tupuede hacer, sin embargo, se cambia la codificación de caracteres predeterminada para cada una de las aplicaciones enumeradas:

  • Para Eclipse, la codificación predeterminada para archivos nuevos se puede configurar desdeWindows > Preferencias > General > Tipos de contenido(verpublicar en los formularios de la comunidad de Eclipse)
  • Para Notepad++, navegue hastaConfiguración > Preferencias > Nuevo documento/Predeterminado/Directorioy establezca Codificación enUTF-8
  • En cuanto a Thunderbird, estoy bastante seguro de que ya usa UTF-8 como codificación predeterminada. (verestas notas sobre la codificación de caracteres)
  • En el caso de OpenOffice (y LibreOffice), en realidad ni siquiera necesita 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 (yUTF-8ya es el valor predeterminado allí también)
  • Desde el punto de vista de UTF-8, PowerShell es complicado. Tiene una codificación predeterminada de UTF-16LE.
    • Para generar archivos desde PowerShell a UTF-8, consulteesta respuesta
    • Para cambiar la codificación predeterminada, consulteesta respuesta

Respuesta2

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

  • Cuando Unicode era nuevo, Microsoft decidió que UCS-2 sería la mejor manera de admitir Unicode. En ese momento Unicode era de 16 bits.
  • Windows tiene una página de códigos ANSI para cada idioma admitido, a diferencia de Unix y Linux, donde el idioma y la codificación se pueden configurar de forma independiente.
  • La página de códigos 65001 no funciona en todas partes. Específicamente, no funciona con parte del soporte MultiByte en Windows, que espera que los caracteres multibyte requieran uno o dos bytes, mientras que UTF-8 requiere entre uno y cuatro bytes. ElWriteFile()APIpor ejemplo, devuelve un resultado incorrecto en la página de códigos 65001 que aparece en todo el código de la biblioteca que depende de ella, comowrite().

El fallecido Michael Kaplan, que trabajó en internacionalización en Microsoft, tenía un blog,"Resolviéndolo todo", con varias publicaciones sobre temas relacionados. Le envié un correo electrónico directamente sobre algunas de estas preocupaciones en el pasado.

información relacionada