2012-04-26 16 views
7

kod na StackOverflow i innych miejsc sugerują this for displaying unicode na iOS:Jaki jest kod do wyświetlania pięciocyfrowej czcionki egipskiego hieroglifu na Unicode na iOS?

[view1 setText:@"\uF300"]; 

Działa to dla większości znaków Unicode, to jednak zawodzi na Egyptian hieroglyphic unicode font (czekać na załadowanie duża czcionka).

Hieroglificzny kod Unicode ma jedną dodatkową cyfrę (tj. "\ UF3001" zamiast "\ uF300"). W wyniku tego wyświetlany jest niewłaściwy znak, a "1" pozostaje na końcu.

Jest oczywiste, że iOS może wyświetlać czcionkę hieroglificzną. Na przykład, jeśli wytniesz i wkleisz ten glif() do instrukcji setText, po zaimportowaniu TTF, glif będzie widoczny na ekranie iOS.

Pytanie brzmi, w jaki sposób można wyświetlić znak Unicode w instrukcji setText przy użyciu czcionki Unicode, która wymaga pięciu cyfr zamiast czterech (tj. "\ UF3001")?

+2

U + F3001 jest do użytku prywatnego, więc * wyświetli tylko to, co chcesz, jeśli użyjesz * dokładnie * właściwej czcionki (ale prawdopodobnie to wiedziałeś). Możesz spróbować użyć '\ uDB8C \ uDC01' (co jest UTF-16 dla U + F3001) i sprawdzić, czy to działa. –

+0

W rzeczywistości czterocyfrowy sześciocyfrowy kod ucieczki Unicode * nie działa * dla większości punktów kodu Unicode. Masz 17 samolotów i możesz adresować tylko jedną z nich tą metodą. – Joey

Odpowiedz

8

Rzeczywiście, tak długo, jak korzystać z kapitału „U” można określić maksymalnie 8 cyfr, takich jak: „\ U000F3001”.

+1

To działało świetnie - dzięki! – Praxiteles

0

Nie jest możliwe dzięki metodzie używasz:

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

Struny mogą zawierać dowolne znaki Unicode z „\ U” następnie maksymalnie czterech cyfr szesnastkowych oznaczający Unicode postać; dla instancji spacja, która jest szesnastkowa 20, jest reprezentowana jako "\ U0020". Ta opcja jest przydatna, jeśli ciągi znaków muszą zawierać znaki Unicode, których nie można wpisać z jakiegoś powodu .