Wer in AppleScript einen Text in eine UTF-8-formatierte Datei ausgeben möchte, sollte auf ein paar Dinge achten.
OS X “denkt” intern in UTF-16. An sich kein Problem, aber wenn die / der geneigte Skripter(in) nun denkt, dass mit as Unicode text der Fall erledigt ist, trifft das nur dann zu, wenn auch UTF-16 als Kodierung gewünscht wird. Solange die Programme, die den Text lesen oder bearbeiten sollen, mit UTF-16 klarkommen ist der Fall erledigt. Wäre da nicht die Geschichte mit dem Unterschied ob besagter Text als Little Endian oder Big Endian gespeichert wird. (Wer weiss, dass das Ganze aus “Gullivers Reisen” stammt, Hut ab.
) Es nützt aber in diesem Fall nichts, wenn man beispielsweise eine HTML-Datei schreiben möchte, die UTF-8-Deklaration voranzustellen, der Text ist nach wie vor in UTF-16 kodiert, und damit kann man bei manchem Browser eine Überraschung erleben.
Daher zurück zum Thema: Wie schreibt man eine UTF-8-kodierte Datei aus AppleScript? Eigentlich ganz einfach, aber, in der Dokumentation zu AppleScript gut versteckt. Man benutzt as «class utf8». Das Zeichen « liegt auf ⌥-q und » auf ⌥-⇧-q.
Da ein paar Zeilen Code mehr sagen als jeder Text, so sieht das Ganze in der praktischen Anwendung aus:
tell application "Finder"
set myFile to choose file name with prompt ¬
"Schreiben in:" default name "Neue Datei"
open for access myFile with write permission
set FileContent to "Once I was a cloud…"
write FileContent to myFile as «class utf8»
close access myFile
end tell
BTW: Um die Frage nicht immer wieder beantworten zu müssen: Ja, ich gebe auch Kurse für AppleScript. Einfach per E-Mail Kontakt zu mir aufnehmen.
