Sabemos que existe una aplicación llamada AppLocale, que puede cambiar la página de códigos de aplicaciones que no son Unicode para resolver problemas de visualización de texto.
Pero hay un programa cuyopágina de códigos de visualización derechaes UTF-8, lo que significasu texto debe mostrarse como UTF-8, pero en lugar de Windowslo muestra como la página de códigos nativay hace que el texto sea ilegible. Parece curioso, porque hay casi todos los países y regiones, pero sin UTF-8. Creo que es un error, porque los programadores pueden usar inglés e ignorar los problemas de visualización de texto que no están en inglés. No creo que el productor lo arregle y quiero arreglarlo yo mismo.
¿Es posible configurar una salida que no sea Unicode como UTF-8 utilizando software como AppLocale? ¿La salida predeterminada no Unicode es la página de códigos nativa? ¿Cómo puedo configurar la página de códigos nativos en UTF-8?
Respuesta1
Anteriormente no era posible porque
Microsoft afirmó que una configuración regional UTF-8 podría interrumpir algunas funciones (un posible ejemplo es
_mbsrev
), ya que fueron escritas para asumir que las codificaciones multibyte no usaban 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 No se pudo establecer UTF-8 como configuración regional.https://en.wikipedia.org/wiki/Unicode_in_Microsoft_Windows#UTF-8
Sin embargo hay un"Beta: utilice Unicode UTF-8 para compatibilidad con idiomas en todo el mundo"casilla de verificación desde la compilación interna 17035 de Windows 10 para configurar la página de códigos locales en UTF-8
Ver también
- Cambiar la página de códigos ansi y OEM en Windows
- Windows 10 Insider Preview Build 17035 admite UTF-8 como ANSI
Dicho esto, el soporte todavía tiene errores en este momento.
- Problema de congelación en Windows 10 1803 cuando se usa UTF-8 como página de códigos predeterminada
- cuando la compatibilidad con Unicode beta en Windows 10 está activada, los complementos no se instalan
- La compatibilidad con UTF-8 para conjuntos de caracteres de un solo byte es beta en Windows y probablemente interrumpa muchas aplicaciones que no esperan esto.
- Error de compilación con error interno en MSVC
Actualizar:
Microsoft también ha agregado la capacidad de que los programas utilicen la configuración regional UTF-8 sin siquiera configurar el indicador beta UTF-8 arriba. Puedes usar el/execution-charset:utf-8
o/utf-8
opciones al compilar con MSVC o configurar la propiedad ActiveCodePage en appxmanifest
También puede utilizar la configuración regional UTF-8 en versiones anteriores de Windows vinculándolas con el tiempo de ejecución de C apropiado.
A partir de Windows 10 compilación 17134 (actualización de abril de 2018), Universal C Runtime admite el uso de una página de códigos UTF-8. Esto significa que
char
las cadenas pasadas a funciones de tiempo de ejecución de C esperarán cadenas en la codificación UTF-8. Para habilitar el modo UTF-8, utilice "UTF-8" como página de códigos cuando utilicesetlocale
. Por ejemplo,setlocale(LC_ALL, ".utf8")
utilizará la página de códigos ANSI (ACP) predeterminada actual de Windows para la configuración regional y UTF-8 para la página de códigos....
Para usar esta función en un sistema operativo anterior a Windows 10, como Windows 7, debe usarimplementación local de la aplicacióno vincular estáticamente usando la versión 17134 del SDK de Windows o posterior. Para los sistemas operativos Windows 10 anteriores a 17134, solo se admiten enlaces estáticos.
Respuesta2
Por lo que leí sobre MicrosoftHerramienta AppLocale en Wikipedia, la herramienta NO puede cambiar su página de códigos a UTF-8.Sólo funciona con aplicaciones que no son Unicode, pero UTF-8 es parte del estándar Unicode.
En esencia, el procesamiento Unicode de caracteres que no son ASCII difiere mucho del procesamiento que no es Unicode, por lo que si bien es posible cambiar entre páginas de códigos que no son Unicode (esto es lo que hace AppLocale), NO es posible cambiar entre Unicode y caracteres que no son ASCII. Unicode sin modificación de la aplicación realizada por su productor.
Respuesta3
Solo para mencionarlo aquí: en Windows 10 17133 ahora hay una opción beta para usar UTF-8 para soporte mundial. Pero a partir de ahora no me ayuda con programas que no son Unicode, pero se coloca en la ventana emergente donde puedo cambiar la configuración regional para programas que no son Unicode.
Entonces, tal vez estén trabajando en algo para terminar con la necesidad de cambiar la configuración regional para programas que no son Unicode.