Pregunta

Actualmente estoy siguientes NeHe tutorial lección 43 ( http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=43).El código funciona satisfactoriamente sólo para texto en inglés, no Unicoded idiomas.Afortunadamente, sigue un enlace de NeHe lección 43 a http://www.cs.northwestern.edu/~sco590/fonts_tutorial.html y encontré otro idéntico tutorial muestra con una única diferencia:utiliza w_char, y el sitio afirma que se puede ejecutar en un idioma distinto del inglés.

Así que darle una oportunidad:

freetype::print(our_font, 320, 200, (unsigned short*)L"Active FreeType Text หกโด้กี่ดุ öáæé おはよ。- %7.2f", cnt1);

la función imprimir de espacio de nombres freetype tiene las 4 de argumento como *const unsigned short** así que me typecasted ella.También puse una L en la parte delantera de la doble cadena entre comillas para largo personajes y poner en algunos de los caracteres Asiáticos propósito de realizar la prueba.

El resultado es todo el texto en inglés puede mostrarse bien, pero todos los caracteres Tailandeses se convierten en "[]B[]I[]5[]8".La [] son cuadrados.Por lo que entiendo, esto implica que la fuente no tiene el idioma especificado, así que traté de otras fuentes, pero todos los demás Tailandés fuentes dan estas mismas cajas cuadradas.Para los Japoneses la fuente, es el mismo.Todas las cajas junto con algunos caracteres en inglés junto a ellos.La subcadena öáæé se reproduce muy bien sin ningún problema.

Me estoy olvidando de algo aquí?¿Cómo podemos mostrar no-inglés lenguaje Unicode aquí?

¿Fue útil?

Solución

Afortunadamente, el autor ha subido una versión modificada de su tutorial en su sitio web (especificado en la pregunta) y utiliza wchar_t (en la versión original, el autor utiliza * const unsigned short ** como un argumento a la función de impresión ), lo que permite idiomas distintos del inglés.

Otros consejos

Parece impresión () en la lección 43 ni siquiera es capaz ni de lejos Unicode. Todo NeHe está haciendo es crear listas de visualización 256 para los primeros 256 caracteres ASCII, no aceptar una cadena UTF8 y convertirlo en UTF32 de FreeType.

este en C ++ que ha funcionado muy bien para mí.

Además, tome una copia de la GNU Unifont para asegurarse de que tiene glifos para toda la BMP .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top