Beitrag von Detlef Schulz, 28.04.2008, 09:17
Neu in AppleScript 2.0: Vollständige Unicode-Unterstützung
Text beruht in AppleScript 2.0, also seit Mac OS X 10.5 Leopard, komplett auf Unicode. Das bedeutet, dass Sie innerhalb von Anführungszeichen oder in Kommentaren auch andere Zeichen als die bei Programmierern üblichen ASCII-Zeichen verwenden können. Zum Einfügen in den Skripteditor verwenden Sie am besten die Zeichenpalette aus dem Tastaturmenü.
Falls Sie die Zeichenpalette noch nicht kennen, beachten Sie bitte diesen Beitrag von Mario Weber.
In folgendem Beispiel habe ich einen Text mit den Symbolen der neun Planeten angelegt:
set neunPlaneten to "☿♀♁♂♃♄♅♆♇"
Ach ja, es sind ja jetzt offiziell nur noch 8 Planeten:
set achtPlaneten to characters 1 thru 8 of neunPlaneten as text
Beide Zeilen zusammen ergeben dann:
"☿♀♁♂♃♄♅♆"
Wie Sie sehen, können Sie mit Unicode-Text genauso arbeiten, wie mit normalem Text auch.
(Falls Sie nur Fragezeichen statt Symbolen sehen, verwenden Sie bitte Safari oder Firefox zum Lesen dieses Artikels.)
Statt die Unicode-Zeichen direkt im Skripteditor einzufügen, können Sie diese aber auch über Ihren Dezimalwert bestimmen. Die Klasse “Text” hat in AppleScript 2.0 dafür die Eigenschaft “id” spendiert bekommen.
character id
Das funktioniert so:
set mytext to character id 9403
Als Ergebnis erhalten Sie das Unicodezeichen Ⓕ, ein “F” in einem Kreis.
Alles, was Sie dafür wissen müssen, ist der Dezimalwert des Unicode-Zeichens - und den erfahren Sie leider nicht in der Zeichenpalette. Dort erfahren Sie aber den Hexadezimalwert, den Sie dann noch umrechnen müssen:
- Wählen Sie in der Zeichenpalette einfach ein Zeichen aus. Klicken Sie es an und halten Sie die Maus ruhig darüber. Ein gelber Hinweiszettel erscheint, auf dem der Hexadezimalwert steht, zum Beispiel “Unicode: 24BB”.
- Jetzt brauchen Sie nur noch den Taschenrechner von Apple. Das Programm “Rechner” finden Sie im Programmordner. Wenn er gestartet ist, schalten Sie ihn über das Darstellungsmenü auf “Programmierer” um.
- Wählen Sie dann rechts oben “Hex” als Eingabemodus aus und tippen Sie den Hexadezimalwert ein. Schreiben Sie Buchstaben dabei bitte klein.
- Nun schalten Sie den Eingabemodus einfach auf “Dec” um, und Sie können den Dezimalwert ablesen, den Sie für
character idbrauchen.
Abb. 1: Der Hexadezimalwert eines Unicodezeichens wird in der Zeichenpalette am Mauszeiger eingeblendet.
Abb. 2: Der Hexadezimalwert wird mit dem Rechner in einen Dezimalwert umgewandelt. Das dem Wert entsprechende Unicode-Zeichen wird links unten in der Ecke des Displays sofort angezeigt, wenn der Knopf “Unicode” eingedrückt ist. Die führenden Zeichen “0x” werden nicht mit eingegeben.
Wenn Sie mehrere Werte in einem Schwung in einen Text einfügen wollen, so benutzen Sie eine Liste für character id:
set mytext to character id {9404, 9438, 9438, 9427}
(Die geschweiften Klammern erreichen sie mit der Tastenkombination alt-8 und alt-9.)
Das Ergebnis ist ein Text mit vier Zeichen:
"Ⓖⓞⓞⓓ"
id
Statt den Weg über den Taschenrechner zur Ermittlung des Dezimalwertes zu gehen, können Sie den Wert aber auch in AppleScript selbst ermitteln. Wenn Sie das Zeichen schon in der Zeichenpalette gefunden haben, dann fügen Sie das Zeichen in den Skripteditor ein und fragen Sie dann nach dessen id:
set mytext to id of "Ⓖ"
liefert Ihnen den Dezimalwert 9404 zurück.
Wenn Sie eine ganze Kette von Zeichen angeben, erhalten Sie eine Liste mit allen Dezimalwerten der Zeichen:
set mytext to id of "Ⓖⓞⓞⓓ"
gibt
{9404, 9438, 9438, 9427}
aus.
Themen: E-Mail Abo | Apple
|
AppleScript
|
Mac OS
Tags: AppleScript | Leopard | Mac OS X | Sonderzeichen | Unicode | Zeichenpalette
apple
RSS 2.0