2012-04-26 10 views
7

Código en StackOverflow y otros sitios sugieren this for displaying unicode en iOS:¿Cuál es el código para mostrar una fuente jeroglífica egipcia basada en Unicode de cinco dígitos en iOS?

[view1 setText:@"\uF300"]; 

Esto funciona para la mayoría de los caracteres Unicode, sin embargo, esto está fallando para una Egyptian hieroglyphic unicode font (esperar fuente grande para cargar).

El jeroglífico Unicode tiene un dígito adicional (es decir, "\ uF3001" en lugar de "\ uF300"). Como resultado, se muestra el carácter incorrecto y el "1" queda al final.

Está claro que iOS puede mostrar la fuente jeroglífica. Por ejemplo, si corta y pega este glifo() en una sentencia setText, después de importar el TTF, el glifo se puede ver en la pantalla de iOS.

Entonces, la pregunta es, ¿cómo se muestra un carácter Unicode en una sentencia setText con una fuente Unicode que necesita cinco dígitos en lugar de cuatro (es decir, "\ uF3001")?

+2

U + F3001 es de uso privado, por lo que * solo * mostrará lo que desee si usa * exactamente * la fuente correcta (pero probablemente ya lo sabía). Podría intentar usar '\ uDB8C \ uDC01' (que es UTF-16 para U + F3001) y ver si eso funciona. –

+0

En realidad, la variante de escape Unicode de cuatro dígitos hexadecimales * no * funciona para la mayoría de los puntos de código Unicode. Tienes 17 aviones y puedes abordar solo uno de ellos con este método. – Joey

Respuesta

8

En realidad, siempre y cuando se utiliza un capital de 'U' puede especificar hasta 8 dígitos como: "\ U000F3001".

+1

Eso funcionó muy bien, ¡gracias! – Praxiteles

0

No es posible a través del método que está utilizando:

https://developer.apple.com/library/ios/#documentation/MacOSX/Conceptual/BPInternational/Articles/NotesForLocalizers.html

Las cadenas pueden incluir caracteres Unicode arbitrarios con “\ T” seguido de hasta cuatro dígitos hexadecimales que denotan el Unicode personaje; para la instancia , el espacio, que es hexadecimal 20, se representa como "\ U0020". Esta opción es útil si las cadenas deben incluir caracteres Unicode que no se pueden escribir por algún motivo.

Cuestiones relacionadas