utf8 getbytes change caracteres c# winforms unicode internationalization unicode-string

getbytes - Mostrar un texto Unicode en C#



string getbytes c# (3)

No puede asegurarse de que el texto Unicode se muestre correctamente, independientemente de la fuente y el idioma, porque no hay una única fuente que pueda representar todos los caracteres Unicode posibles . Debe seleccionar una fuente que pueda mostrar los caracteres Unicode que debe representar.

Mi aplicación muestra caracteres en inglés, japonés y chino en un TextBox y una etiqueta LinkLabel. Actualmente, verifico si hay caracteres Unicode y cambio la fuente a MS Mincho o de lo contrario la dejo en Tahoma.

Ahora MS Mincho muestra japonés correctamente, pero para chino tengo que usar Sim Sun. ¿Cómo puedo distinguir entre los dos?

¿Cómo puedo garantizar que el texto Unicode se muestre correctamente independientemente de la fuente / idioma?


Si tiene caracteres Unicode para cada texto, usar una fuente que admita Unicode debe cubrirlo adecuadamente (p. Ej., Arial Unicode MS).


Todas las cadenas en C # son Unicode. Los puntos de código inglés (latín), japonés y chino se encuentran ubicados en diferentes rangos de puntos de código.

Creo que tienes dos opciones:

  • Busque una fuente Unicode que contenga caracteres para todos los puntos de código en los tres idiomas.

  • Intente adivinar el idioma y elija una fuente que contenga los caracteres para los puntos de código en ese idioma.

Para la opción 2, puede ver los gráficos Unicode para descubrir dónde están los diferentes puntos de código y expandir su algoritmo para adivinar el idioma.

Ejemplo para Hiragana :

bool IsHiragana(char ch) { return (ch >= ''/u3040'') && (ch <= ''/u309f''); } bool IsHiragana(string s) { return s.Count(IsHiragana) > 0; }