Android: mostrar caracteres especiales

Me gustaría mostrar caracteres especiales como: ṁ ṭ m ē. En caso de que no se muestren aquí también, así es como deberían verse los cuatro caracteres: Visualización de caracteres especiales

En Android, estos se mostrarán en cuadrados. Para otros scripts, puedo solucionar este problema usando una fuente diferente. Pero en este caso, establecer la fuente (TextView.setTypeFace) no resolverá este problema. Estos caracteres se muestran correctamente, por ejemplo, en OpenOffice (usando Arial o Courier New), pero dentro de Android ni siquiera cuando se usan las mismas fuentes).

También intenté guardar la cadena como una cadena codificada Unicode (por ejemplo, en strings.xml: \u1E41 \u1E6D) obteniendo el mismo resultado (en los registros aparecen como deberían). ¿Algunas ideas?

preguntado el 11 de abril de 13 a las 04:04

pruebas en Android 2.3.6. -

2 Respuestas

Si estos caracteres se pueden representar en Unicode, entonces debería poder usar Html.fromHtml() para obtener el glifo en un TextView, por ejemplo

textView.setText(Html.fromHtml("Ӓ"), TextView.BufferType.SPANNABLE);

Respondido 14 Abr '13, 16:04

Supongo que quisiste decir "Ӓ" o más bien "ሴ" (para valores hexadecimales). Sin embargo, esto tampoco lo hace para los caracteres que necesito (por ejemplo, ṁ). Gracias de todos modos. - Carl K.

Sí, perdón por el error tipográfico. Parece que Android no tiene la fuente requerida para el idioma en cuestión. Si puede encontrar la fuente en alguna parte, puede incluirla en la carpeta /res/assets de su paquete. Luego use TypeFace para cargar la fuente, almacenándola en caché si la usará más de una vez. Por ejemplo, Tipo de letra typeface = Typeface.createFromAsset(getAssets(), "your_font.ttf"); textView.setTypeface(tipo de letra, Tipo de letra.NORMAL); - Yojimbo

En la pregunta escribí que también probé esto. Lo extraño es que al usar la misma fuente que se usa en algunas aplicaciones de escritorio (OpenOffice, algunos editores), donde los caracteres aparecen correctamente, aún no los muestra correctamente dentro de Android. - Carl K.

Esto funciona en algunos casos. Sin embargo, NO funciona para unicodes como "\u266B" (♫), también mucho en en.wikipedia.org/wiki/Mathematical_Operators - LiangWang

Realmente fue solo un problema de fuente. Fue difícil encontrar una fuente que admita todos los caracteres que necesito.

Ver que Google Translate no tiene problemas con la transliteración de caracteres me motivó a realizar una búsqueda más exhaustiva de fuentes. A continuación se muestra una lista de fuentes útiles para este propósito:

Respondido 30 Abr '13, 07:04

Tienes razón, Android NO es compatible con todos los Unicode como "\u266B" (♫), también mucho en en.wikipedia.org/wiki/Mathematical_Operators. - LiangWang

¿Has encontrado la solución? - LiangWang

@Jacky: Sí, como traté de dejar en claro, usar cierto paquete de fuentes (ttf) tuvo el efecto deseado. Solía ​​tener este problema con los caracteres devanagari (una escritura india), anteriormente con la misma solución. - Carl K.

@Jacky: si necesita saber cómo configurar el tipo de letra en su vista de texto, así es como: Typeface face = Typeface.createFromAsset( context.getAssets(), "path/file.ttf"); textView.setTypeface(face); - Carl K.

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.