Windows 10: visualización incompleta de los caracteres de una fuente

Windows 10: visualización incompleta de los caracteres de una fuente
  • De forma predeterminada, Windows 10 viene con elsegoe interfaz de usuario emojifuente
  • esta fuente es la única fuente predeterminada que tiene los siguientes 4 caracteres Unicode:

Respuesta1

Los elementos modernos de la interfaz de usuario no funcionan de la misma manera que los elementos heredados. El cuadro de diálogo de ejecución y el bloc de notas son elementos antiguos que no se actualizan con el resto del sistema operativo. La barra de búsqueda es un elemento del sistema operativo moderno, por lo que este debería ser el comportamiento de todos los elementos más nuevos del sistema operativo. La familia de fuentes Segoe se desarrolló para la interfaz de usuario moderna y todas se utilizan para diversas funciones de visualización de texto. Dicho esto, el desarrollo de Microsoft no se caracteriza por su coherencia. Es posible que encuentre diferentes elementos, desarrollados por diferentes equipos, que tengan un comportamiento diferente.

Para obtener más información sobre cómo se manejan de manera diferente las fuentes en las aplicaciones "modernas" de Windows 10, lea este artículo:https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/typography-in-wpf

WPF proporciona soporte de fuentes mejorado al proporcionar las siguientes características: Unicode para todo el texto. El comportamiento y la selección de fuentes ya no requieren juego de caracteres ni página de códigos.

Esto explica cómo las aplicaciones modernas pueden mostrar caracteres de múltiples fuentes dentro de una familia de fuentes.

Respuesta2

@harrymc "Todo el software de Windows utiliza la misma API que es compatible con los mismos componentes de Windows".

Yo: * esto es relativo a su definición de "api" * ambos se ejecutan en .net, que a su vez se ejecuta en winrt (tiempo de ejecución de Windows) * sin embargo, aún pueden tener interfaces diferentes * teniendo en cuenta esto, wiki sugiere que son diferente: https://en.wikipedia.org/wiki/Windows_Forms * "Windows Forms se basa en la API de Windows existente y algunos controles simplemente envuelven los componentes subyacentes de Windows". https://en.wikipedia.org/wiki/Windows_Presentation_Foundation * "La arquitectura de WPF abarca tanto código administrado como componentes de código nativo. Sin embargo, la API pública expuesta solo está disponible a través de código administrado. Si bien la mayor parte de WPF está en código administrado, el motor de composición que representa las aplicaciones WPF es un componente nativo. ".

https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.fontfamily?view=netframework-4.8

"El mecanismo de reserva de fuentes WPF reemplaza las tecnologías anteriores de sustitución de fuentes Win32".

https://support.microsoft.com/en-us/help/3083806/why-does-some-text-display-with-square-boxes-in-some-apps-on-windows-1

"Windows todavía tiene un gran soporte para Unicode y texto internacional, y garantiza que las aplicaciones universales de Windows puedan tener una excelente visualización de texto en dispositivos de escritorio y en cualquier otro factor de forma.

@HackSlash "El cuadro de diálogo de ejecución y el bloc de notas son elementos antiguos que no se actualizan con el resto del sistema operativo".

Yo: * no es cierto * sin embargo, el Bloc de notas no se actualiza con tanta frecuencia como el Bloc de notas

nota * Ordenaré esta publicación pronto * Apenas tuve tiempo de hacer esto antes de que se acabara el tiempo de recompensa * @harrymc y @HackSlash tenían errores fundamentales * así que quería brindar información más precisa

Respuesta3

No estoy de acuerdo con la respuesta aceptada: todo el software de Windows utiliza la misma API que es compatible con los mismos componentes de Windows. Si bien el software más antiguo puede utilizar API obsoletas, este no es el caso ni del Bloc de notas ni del Wordpad, que todavía están en desarrollo en la actualidad.

El problema experimentado por el cartel con el Bloc de notas y Wordpad se relaciona más con la interfaz de usuario que con esos productos, y aquí está la prueba, donde los caracteres se muestran correctamente cuando la fuente actual se especifica como Segoe UI Emoji:

ingrese la descripción de la imagen aquí

Sin embargo, no espere que pegar estos caracteres funcione cuando la fuente actual no sea Segoe UI Emoji, a menos que uno o más de ellos estén incluidos en la fuente actual.

Para cuadros de diálogo de Windows: cuando se crea el cuadro de diálogo, la fuente utilizada por el campo de texto se especifica en la definición del cuadro de diálogo. La fuente Segoe UI Emoji obviamente no es adecuada como fuente de texto normal y, por lo tanto, nunca se utilizaría para dicha interfaz de usuario.

No puede forzar que un cuadro de diálogo utilice otra fuente distinta a la que está programado, al menos no sin piratear el .exeo .dllque contiene la definición del cuadro de diálogo. Por lo tanto, no se puede esperar que pegar emojis funcione en los cuadros de diálogo.

EDITAR

El rango de caracteres Unicode, aunque es muy grande, no es suficiente para contener todos los caracteres de todos los idiomas de la Tierra. Esta es la razón por la que las fuentes son importantes, ya que el mismo punto de código Unicode se puede utilizar para diferentes caracteres en diferentes fuentes.

El portapapeles de Windows es rico, a diferencia del portapapeles de Linux. No sólo contiene los caracteres, sino que también puede contener información sobre el idioma, la dirección (derecha, izquierda), la fuente y más. La API es capaz de configurar y obtener diferentes formatos, y también es lo suficientemente inteligente como para convertir al obtener el formato almacenado al formato solicitado.

Entonces, lo que obtienes al copiar y pegar caracteres especiales depende de la API utilizada por los programas de origen y de destino. A continuación se muestra un ejemplo que utiliza Wordpad.

El es el texto inicial en fuente Arial:

ingrese la descripción de la imagen aquí

Ahora copio y pego el cuarto carácter del navegador hasta el final del texto y he aquí el milagro: la fuente ahora es Segoe UI Emoji:

ingrese la descripción de la imagen aquí

Ahora hago clic en la palabra "Arial" y de repente la fuente es diferente:

ingrese la descripción de la imagen aquí

Entonces ahora tenemos texto con dos fuentes diferentes. El carácter que pegamos (

información relacionada