2011-04-13 20 views
5

Estoy trabajando en una aplicación WinForm y tengo un cuadro de texto donde estoy pegando textos de Google Translator. Obtuve resultados positivos con varios idiomas Sematic e Indo, pero los caracteres chinos aparecen como cuadros.No es posible pegar caracteres chinos en el cuadro de texto de Windows Form

¿Hay alguna manera de superar esto?

+2

Es porque su fuente predeterminada de Windows - probablemente Microsft sans serif - no tiene esos caracteres. Puede cambiar la fuente que está utilizando el cuadro de texto a otra cosa, p. Arial Unicode (si tiene Office) o una de las fuentes específicas de chino, pero no sé cómo hacerlo por personaje o de forma inteligente en función del contenido. Suponiendo que su aplicación sea Unicode, los caracteres aún se pegarán correctamente, por cierto, incluso si no se muestran correctamente. – Rup

+0

Sí, estoy usando Microsfot Sans Serif. ¿Recomiendas usar Arial Unicode? ¿Resolverá muchos de los problemas? –

+0

No lo sé, supongo que probablemente sea mejor utilizar la fuente predeterminada solo si puede (y los usuarios chinos ya estarán usando una fuente que admita sus caracteres - mingliu?). Arial Unicode se envía con Office, no con Windows, por lo que solo las personas con Office instaladas lo tendrán, por lo que probablemente no sea la mejor opción, dependiendo de a quién se despliegue. – Rup

Respuesta

4

Debe utilizar la fuente Unicode apropiada que admita codificaciones CJK. El mejor es "Arial Unicode MS", pero puede estar ausente en el sistema operativo anterior a Vista sin la instalación de MS Office. En este caso, puede usar otra fuente como "NSimSun".

 
string arialUnicodeFontFace = "Arial Unicode MS"; 
Font unicodeFont = new Font(arialUnicodeFontFace, fontSize); 
if (unicodeFont.Name != arialUnicodeFontFace) 
    unicodeFont = new Font("NSimSun", fontSize); 

yourTextBox.Font = unicodeFont; 

También puede consultar la lista de todas las fuentes CJK apoyados en diferentes versiones de Windows: http://en.wikipedia.org/wiki/List_of_CJK_fonts

+0

"Arial Unicode MS" parece no ser capaz de Vista (o Win7 para el caso) de forma predeterminada - allí también necesita algún producto de Office como Word o Excel. Ver: http://www.microsoft.com/typography/fonts/font.aspx?FMID=1081 –

Cuestiones relacionadas