• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Scripts works with OSX 10.5 but not earlier because of Unicode
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Scripts works with OSX 10.5 but not earlier because of Unicode


  • Subject: Re: Scripts works with OSX 10.5 but not earlier because of Unicode
  • From: Christopher Nebel <email@hidden>
  • Date: Fri, 11 Apr 2008 11:13:10 -0700

On Apr 10, 2008, at 1:43 PM, Paul Taylor wrote:

Hi, I have a script that now works fine on OSX 10.5 (Applescript 2?) but fails on 10.4 and earlier when the filename contains unicode characters. This ties in with this link http://www.apple.com/applescript/features/unicode.html , it seems I have to use the Unicode text class but I cant work out to use it so that it works on 10.5 and 10.4
Please help Im guessing this is quite trivial for regular applescript developers but not for me.


(in the script below the problem is the ǿ at the end of bee)
tell app "iTunes"
set new_playlist to (make user playlist with properties {name:"Jaikoz:4/10/08 1:31 PM"})
add(POSIX file "/Users/paul/Music/iTunes/iTunes Music/beeǿ/A Hard Days Night/When I Get Home.mp3") to new_playlist
repeat with nexttrack in (get every track of new_playlist)
refresh nexttrack
end repeat
end tell

So, the script you're running is literally the text above, with that "ǿ" in there? If so, then the problem you're running into is that AppleScript pre-10.5 doesn't handle Unicode text literals like that -- it transcodes everything into an old-style encoding, and I don't think any of them support that particular character.


There are a few possible solutions:

1. Write the string as a raw data literal instead, something like this:

	«data utf868656C6C6F20776F726C64» as Unicode text --> "hello world"
	«data ut1600680065006C006C006F» as Unicode text --> "hello"

If you couldn't tell, that's "utf8" or "ut16" followed by the UTF-8 or UTF-16BE data for the text, as hex. Both of those will work on Tiger; I can't swear to anything earlier. ("ut16" almost certainly won't; you can use "utxt", but then you have to be careful about endianness.)

2. Write the string data to a file as Unicode, and then read it from there. Not necessarily practical, depending on how dynamic this whole scheme is, but it would work.

If I recall an earlier message of yours correctly, you're actually generating this script and executing it from another program. In that case, a third possibility would be to make that program do the iTunes work itself, rather than delegating it to AppleScript. This will depend on what the original language is, but most languages that run on Mac OS have some sort of Apple Event support. Since you want this to run on 10.4, your best bet is probably appscript, which is a third- party library; I'd suggest Scripting Bridge, which is part of Mac OS, but only in Leopard.


--Chris Nebel AppleScript Engineering

_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden
  • Follow-Ups:
    • Re: Scripts works with OSX 10.5 but not earlier because of Unicode
      • From: Paul Taylor <email@hidden>
References: 
 >Scripts works with OSX 10.5 but not earlier because of Unicode (From: Paul Taylor <email@hidden>)

  • Prev by Date: Re: Setting signatures in Mail.app from osascript
  • Next by Date: Re: Address Book: Getting a reference to email by ID
  • Previous by thread: Scripts works with OSX 10.5 but not earlier because of Unicode
  • Next by thread: Re: Scripts works with OSX 10.5 but not earlier because of Unicode
  • Index(es):
    • Date
    • Thread