mb_ucfirst() på kinesiske tegn

Tags:    php

Jeg prøver at få nogen kinesiske tegn til at blive vist rigtigt på min hjemmeside.

Jeg har en funktion som laver det første bogstav stort da jeg også bruger det til almindeligt bogstaver som a-å men mb_ucfirst() laver de kinesiske tegn om til "??".

Fold kodeboks ind/udPHP kode 


Hvis jeg prøver at skrive de 2 kinesiske tegn så laves de også om til "??" her på udvikleren.dk...

??



Indlæg senest redigeret d. 21.01.2012 04:24 af Bruger #13010
2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Her er et par umiddelbare gæt (og det er alt det er, er ikke så meget inde i kinesisk).

A. Kinesiske "bogstaver" er ikke bogstaver som her i den vestlige verden men minder mere om "ord". mb_ucfirst() gør bogstaverne til store men det er ikke sikkert at der er et "større" kinesisk symbol. Svarer lidt til at jeg viser dig en rebus og så beder dig om at gøre det første billede større (altså ikke fysisk større) - hvordan vil du så gøre det?

B. Er du sikker på at du har sat encoding korrekt på din PHP og HTML sider? Selv hvis du har er det ikke en garanti for at tegnet kan blive vidst. Blot fordi at unicode understøtter tegnet betyder det ikke at selve fonttypen der bliver brugt understøtter det.

Der er en tabel her der viser nogle skrifttyper og hvad de understøttes af: http://en.wikipedia.org/wiki/Unicode_typefaces



Det er fint nok at de kinesiske tegn ikke kan blive lavet store, jeg vil gerne bare have at de kinesiske tegn kommer igennem min funktion uden at blive ændre. Men de bliver lavet om til spørgsmålstegn.

Så måske jeg kunne teste om strengen er i unikode så kan jeg undgå at bruge mb_ucfirst() hvis strengen ikke er unicode.

Måske noget i stil med :

Fold kodeboks ind/udPHP kode 




t