AppleScript: Schreiben von UTF-8-kodiertem Text | TechNovelty

Zur Kategorie 'Mehr machen mit dem Mac'? Hier klicken!

Startseite mail me! RSS-Feed

AppleScript: Schreiben von UTF-8-kodiertem Text

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.

| Trackback |

-- Anzeige --

Möglicherweise auch interessant (aber nicht zwingend in diesem Zusammenhang):



Toby schrieb,

December 28, 2009 @ 12:34 pm

Interessant! Und wie gehts anders herum? Ich habe hier deutsche Namen mit Umlauten wie “Herr R=?ISO-8859-1?B?9g==?=mer” (Römer). Wie könnte ich die wieder zurück in lesbaren Text umwandeln? Danke für einen Tipp!

Von Toby am December 28th, 2009

Erik schrieb,

January 4, 2010 @ 1:07 pm

Ich muss ehrlich gestehen, so einen String habe ich in AppleScript noch nie zu Gesicht bekommen. Wie sah denn der Befehl aus?

Von Erik am January 4th, 2010

Thomas schrieb,

March 8, 2010 @ 6:49 pm

Hey!
Also bei mir funktioniert die Textcodierung nicht. Bei deinem Beispiel steht in der generierten Textdatei “Once I was a cloud‚Ķ”. Und wenn ich deinen Text in “ÄÖÜ” ändere, dann kommt dabei “√Ñ√ñ√ú” raus.

Woran kann das liegen? Ich brauche gerade dringend die UTF-8 Codierung für AppleScript.

Liebe Grüße,Thomas

Von Thomas am March 8th, 2010

Erik schrieb,

March 18, 2010 @ 3:28 pm

Das Programm, welches die Datei öffnet, muss mit UTF-8 auch umgehen können. TextMate zeigt auch die Umlaute richtig an.

Von Erik am March 18th, 2010

RSS Feed für Kommentare zu diesem Beitrag · TrackBack URI

Kommentieren (moderiert)

-- Anzeige --