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

63

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

Baarn
fuente
44
Entonces, ¿quieres decirle algo al sistema operativo ... y luego, mágicamente, todos los editores lo captan? :) ¿Cuántos editores usas? Cada 3 minutos, ¿otro? De todos modos: superuser.com/questions/221593/windows-7-utf-8-and-unicode De lo que sé: Windows usa UTF16 internamente en todas partes, y dudo que pueda cambiar eso.
akira
1
editores que uso: notepad, notepad ++, qt, eclipse, thunderbird, open office y algunos otros ... no solo estoy hablando de editores de texto plano sino de todo lo que funciona con texto de entrada y salida. La mayoría de los editores de texto independientes de la plataforma usan utf-8 como estándar en Linux, pero usan Latin-1 en Windows.
Baarn
No en Windows 7 pero es posible en Windows 10
phuclv

Respuestas:

45

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 les permita a ambos 1) establecer un valor predeterminado global que 2) todas las aplicaciones que enumeró obedecerían.

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

Depende de la aplicación elegir si usan 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.

Sin embargo, lo que puede hacer es cambiar la codificación de caracteres predeterminada para cada una de las aplicaciones enumeradas:

  • Para Eclipse, la codificación predeterminada para nuevos archivos se puede configurar desde Windows> Preferencias> General> Tipos de contenido (ver publicación en Formularios de la comunidad de Eclipse )
  • Para Notepad ++, vaya a Configuración> Preferencias> Nuevo documento / Predeterminado / Directorio y configure Codificación en UTF-8
  • En cuanto a Thunderbird, ¿estoy seguro de que ya usa UTF-8 como codificación predeterminada? (vea estas notas sobre 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 (y UTF-8 ya está el valor predeterminado allí también)
  • Desde el punto de vista de UTF-8, PowerShell es complicado. Tiene codificación predeterminada de UTF-16LE.
jsalonen
fuente
44
no es la respuesta que esperaba obtener, pero creo que tengo que vivir con la verdad, gracias =)
Baarn
para ventanas de bloc de notas?
Mimouni
23

No es posible principalmente porque Windows no permite UTF-8 como la página de códigos ANSI del sistema a pesar de que tiene una página de códigos ANSI para UTF-8, página de códigos 65001 . Parece que hay 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 tenía 16 bits.
  • Windows tiene una página de códigos ANSI para cada idioma compatible , 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 se rompe con algunos de los soportes 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ódigos 65001, que aparece a través de todo el código de la biblioteca, como por ejemplo write().

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

hippietrail
fuente
Tenga en cuenta que cuando se concibió Windows (NT), no había UTF-8. Entonces, UCS-2 fue en realidad una opción realmente sensata (e imposible de cambiar después, excepto para UTF-16).
Joey
2
La razón es porque el entorno local UTF-8 podría romper algunas funciones (un posible ejemplo es _mbsrev) ya que se escribieron para asumir que las codificaciones multibyte no utilizaron más de 2 bytes por carácter, por lo que hasta ahora las páginas de códigos con más bytes como GB 18030 (cp54936 ) y UTF-8 no se pudo establecer como configuración regional. . Pero al menos ahora es posible establecer UTF-8 en Windows 10
phuclv