Text Encoding in Datei ändern

16/04/2010
Ich brauchte auf die Schnelle ein Skript, mit dem sich eine cvs-Datei die von einem Windows-PC stammt (ISO-8859-1) von der Zeichenkodierung so umstricken lässt, dass ein Mac auf Anhieb (meist UTF-8 oder UTF-16) auch die ganzen Sonderzeichen (öüÖ usw.) korrekt darstellt.
Dieses AppleScript Droplet konvertiert mit iconv die Datei also nach UTF-16 und speicher sie im selben Verzeichnis mit vorrangestelltem _ ab.
Code zum markieren einmal anklicken Code im Skript-Editor öffnen

on open these

tell application "Finder"

if (count of these) is 1 then

repeat with this in these

if name of this ends with ".csv" then

set this_x to POSIX path of this

set this_name to name of this

set this_folder_X to POSIX path of ((container of this) as alias)

do shell script "cd " & quoted form of this_folder_X & ";iconv -f ISO-8859-1 -t UTF-16 " & quoted form of this_x & ">_" & quoted form of (this_name) as text

end if

end repeat

end if

end tell

end open

No Comments

JavaScript:AppleScript Link bauen mit Text aus div-Element

13/03/2010
Ich poste ja den AppleScript-Quellcode hier immer in so einem Div-Elementen, das ab einer gewissen Größe einen Scroll-Balken bekommen.
Zudem wählt ein Klick auf den besagten Container den kompletten Inhalt aus und weil ich copy&paste eh schon so oft mache, gibt es dazu noch einen Link "Code im Script-Editor öffnen".

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

display dialog "Hallo, ich bin ein Dialog voller Sonderzeichen!\"§$%&/()=?

und Umlaute: ÖÄÜöää

Hm, fällt mir sonst noch etwas ein... ∂†ΩƒΩ©¨ªºø{|Ω®[€¢€‚∂®çƒ©√∫ª~º∆øπ@•∞œ@"


Um diesen Link geht es nun, den baue ich mir nämlich via JavaScript und da die Routine, die ich dazu geschrieben hatte, etwas buggy war, jetzt aber nach einer kleinen Anpassung anscheinend endlich auch mit allen Sonderzeichen und Umlauten zu funktionieren scheint, hier der Code dazu: function buildAppleScriptLink() { var txt = ''; if (window.getSelection) { txt = window.getSelection(); } else if (document.getSelection) { txt = document.getSelection(); } else if (document.selection) { txt = document.selection.createRange().text; } else return; window.open(("applescript://com.apple.scripteditor?action=new&script=" + (new String(txt)).replace(/\"/g,'%22').replace(/\n/g,'%0D'))).close(); window.getSelection().removeAllRanges(); }
Das Ding wird nach eine anderen Routine aufgerufen (selectThis(this)), die den Inhalt des "Code-Divs" auswählt. Der Text, also nicht der HTML-Quellcode (innerHTML) wird dann zu einem AppleScript-Link umformatiert (Anführungszeichen und Zeilenumbrüche werden ersetzt gegen URL-Konforme Escape-Sequenzen) und dieser Link wird via JavaScript dann auch gleich in einem
neuen Fenster aufgerufen, was dann zumindest auf einem Mac, den AppleScript-Editor öffnet. Meine Tests unter 10.6.2 und Safari (4.0.5) waren bisher allesamt erfolgreich. Sollte jemand noch eine Idee zu einer Verbesserung des Codes haben, bitte in die Comments. Ich denke das sollte aber alles Funktionieren, sofern die Seite vom Encoding auf UTF-8 steht.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
No Comments