Unicode-Code eines Zeichens

Wie kann ich eines Zeichens Unicode rausfinden?
z.B. „A“ => 65 bzw: 41 (hex)
Es geht mir aber explizit um den Unicode. Nicht ASCII (wofür es die funktion ord gibt).
z.B. „►“ => 9658 bzw: 25BA (hex)

ob es dezimal oder hexadezimal ist egal, umrechnen ist kein problem.

grtz
michi

Moin, Michi!

Hier steht alles, was Du noch nie über Unicode wissen wolltest (einschließlich der Zeichentabellen):

http://www.unicode.org/charts/

Gruß, Caro

Sorry, ich hab die Frage falsch formuliert. Ich brauch den Code dynamisch (je nach Usereingabe) im Skript. Die Tabelle an sich finde ich sogar als Programm in Windows die Zeichentabelle, unter GNOME (Oberfläche für Linux) gibts „gucharmap“.
Das heißt: einzelne Codes rausfinden wäre so kein Problem. ABER da ich die Nutzereingabe nicht Vorhersehen kann, weiß ich nicht, welche Zeichen er eingibt. Über den Unicode wäre es aber möglich, bestimmte Zeichen einzugrenzen. Und der ASCII enthält nicht so viele Zeichen, wenn ich die Zeichen als String beigebe, gibts häufig Probleme (wodurch preg* und sämtliche Stringfunktionen lahmgelegt werden).
Das ist der Hintergrund: einen Integer wie 9658 (Dezimal-Unicode für „►“) kann ich einfach mitgeben und so auch Bereiche definieren z.B. 8592 bis 8597 (Dezimal für Pfeile Richtung N-O-S-W inklusive Doppelpfeile)

Was ich suche ist also im Endeffekt eine Funktion, die ein Zeichen aus einer internen Zeichentabelle liest und mir dann die Position zurück gibt. ord macht nichts andres. Nur mit einer kleinen Tabelle.

grtz
michi

Du schreibst unten, das das von einer Eingabe kommt, als was denn ? utf-8 (enctype im bzw. encoding der Seite) ? Dann sollte in der Eingabe direkt dieses Zeichen stehen, im String hast du dann z.B. 2 Zeichen für eines, da Strings in PHP5 immer Bytes sind, also keine Multibyte-Zeichen direkt unterstützt werden. Den Wert der einzelnen Zeichen gibts dann direkt mit ord().
Anhand der Tabelle unter http://de.wikipedia.org/wiki/Utf8 kannst du schauen, ob das aktuelle Zeichen noch weitere Bytes hat, um die zu dekodieren.

Richtig hässlich wird es, wenn du irgendeinen Nicht-Multibyte Zeichensatz im Dokument hast (iso-8859-1, etc.), dann kommt alles, was da nicht drin ist, als HTML-Entity an, also & #x1234 , etc.